Latest evidence-based health information
Apps

Excelマクロ作成の10のプロのヒント

Excelマクロ作成の10のプロのヒント
Excelマクロ作成の10のプロのヒント

Excelマクロは、よく使われる繰り返し作業を自動化することで、時間と労力を節約します。マクロを作成するのにプログラマーである必要も、Visual Basic Applications (VBA) の知識を持つ必要もありません。Excelなら、キー操作を記録するだけで簡単にマクロを作成できます。これらのヒントを使えば、マクロの記録が簡単になります。

1. マクロ名

マクロ名は短く(ただし、内容が分かりやすいものにしてください。特に多くのマクロを記録する場合は、マクロダイアログボックスで簡単に識別できるようにしてください。システムには説明を入力するフィールドも用意されていますが、必ずしもすべてのユーザーが使用するわけではありません。

マクロ名は文字で始まる必要があり、スペース、記号、句読点を含めることはできません。最初の文字の後には、文字、数字、またはアンダースコアを使用できますが、最大文字数は80文字です。

2. 相対的な(絶対的な)セルアドレスを使用する

絶対参照とは、セルの正確な位置(A6やB12などのハードコードされたセルアドレス)がマクロに記録されることを意味します。絶対参照では、何かが変更されたり、新しいデータが追加/削除されたり、リストが長くなったりすると、マクロの動作が制限されます。相対参照とは、マクロに記録されるキー操作が開始セルの位置を基準にしていることを意味します。

Excel のデフォルトは絶対ですが、[記録の停止] ツールバーでこれを相対に変更できます。

[開発] [マクロの記録] をクリックします。

  1. 「マクロの記録」ダイアログボックスで、マクロ名とショートカットキー(該当する場合)を入力します。「マクロの保存場所」ドロップダウンリストから「個人用マクロブック」を選択し、 必要応じて説明を入力して、「OK」をクリックします。
  2. ダイアログボックスが消え、「マクロの記録」ボタンが「記録の停止」ボタンに変わります。次に「相対参照」ボタンをクリックします。ボタンが濃い緑色に変わり、アクティブであることを示します。
  3. キーストローク、数式などを入力し、「記録の停止」ボタンをクリックしてマクロを実行します。
01 相対セルアドレスを使用してマクロを記録する JD サーティン / IDG

相対セル アドレスを使用してマクロを記録します。

3. 常に家庭から始める

カーソルとデータのあるホームポジション(セルA1)から始めてください。マクロを個人用マクロブック(推奨)に保存した場合、同様のデータを持つ他のワークシートでもこのマクロを再利用できます。

マクロの記録を開始するときにカーソルがどこに配置されているかに関係なく、カーソルが既にセル A1 にある場合でも、最初のマクロ キー入力はCtrl + Homeにして、Home から開始するようにする必要があります。

例:毎月、すべての支店から数十枚のスプレッドシートが届き、それらをまず結合し、整理して計算し、1つの月次レポートを作成する必要があると想像してみてください。これらの機能すべてを実行するマクロを作成できます。これには、すべてのワークシートを開いて1つのスプレッドシートに結合することも含まれます。この演習では、結合されたデータを含む最終的なスプレッドシートのみを扱います。

  1. Excelで新しいブック(例:4月の報告書)を作成します。カーソルは自動的にホームポジション(A1)に配置されます。タイトルやフィールドヘッダーなど、他の項目に合わせてカーソルを移動しないでください。カーソルはA1に配置されている必要があります。
  2. 最初のブランチワークブックを開き、スプレッドシート全体のデータ(列ヘッダーを除く)を4月レポートのスプレッドシートのセルA1にコピーします。データはA1から始まり、G55で終わります。
  3. 2つ目のブランチワークブックを開き、スプレッドシート全体のデータ(列ヘッダーを除く)を「4月レポート」スプレッドシートのセルA56にコピーします。この手順を繰り返し、すべてのワークブックのデータが「4月レポート」スプレッドシートにコピーされるまで続けます。
  4. 他のスプレッドシートのデータに数式が含まれている場合は、「貼り付け」 >  「特殊」 「値」を選択して貼り付けオプションを選択してください。数式や書式はコピーしないでください。
  5. この時点では、ワークシートのタイトル、列ヘッダー、書式設定(列幅、フォントなど)は気にする必要はありません。データをコピーしてマクロを実行するだけです。
  6. データの計算が完了したら、「行の挿入」を使用して列ヘッダー、スプレッドシートのタイトル、その他の情報を追加できます。その後、列幅の書式設定、フォントの変更、属性の追加、罫線やボックスの配置など、必要に応じて設定できます。(書式設定タスクを実行するためのマクロを追加作成することもできます。)

4. 常に方向キーで操作する

方向キー(End+Down、Ctrl+Upなど)を使用してカーソルを移動し、必要に応じてスプレッドシート内のデータを追加、変更、または削除します。セルアドレスをハードコードした場合、スプレッドシートに変更や編集を加えるとマクロ機能が無効になる可能性があります。例えば、A1からA20までの合計を求めるマクロをコーディングし、その後に行(例:A1からA35)を追加すると、数式には追加のセルが含まれず、合計が不正確になります。

マウスを使った操作は複雑で信頼性も低くなります。マクロを使用する場合は、メニューオプションの選択またはクリックにのみマウスを使用してください。

5. マクロを小さく具体的にする

マクロは小さく、手元のタスクに特化しましょう。マクロが大きくなるほど、特に多くの関数を実行したり、大きなスプレッドシートで多くの数式を計算したりする必要がある場合は、実行速度が低下します。また、すべてのタスクを1つの長いマクロにまとめると、失敗すると、失敗箇所の特定に非常に時間がかかります。各マクロを個別に実行すれば、結果を素早く確認し、正確性を確認できます。

02 F8でExcelマクロをステップ実行する JD サーティン / IDG

F8 キーで Excel マクロをステップ実行します。

4月のレポートの例では、計算マクロと書式マクロを組み合わせることはありません。1つ目のマクロですべてのブランチワークブックを1つのスプレッドシートに結合し、2つ目のマクロでデータを計算、3つ目のマクロでスプレッドシートの書式設定、4つ目のマクロでグラフ作成、そして5つ目のマクロで印刷といった具合です。

マクロが失敗した場合は、1行ずつステップ実行することでトラブルシューティングできます。スローモーションのように、F8キーを使って次のイベントが発生するタイミングを制御できます。「開発」 「マクロ」をクリックし、リストからマクロを選択して、「ステップイン」ボタンをクリックします。コードウィンドウを縮小し、画面の右下に配置して、背後にあるスプレッドシートが見えるようにします。マクロを次のステップに進めたいときは、毎回F8キーを押します。マクロはエラーに到達すると停止します。その後、エラーを修復するか、新しいマクロを記録できます。

6. 事前に静的データを入力する

スプレッドシートに会社名や所在地などの静的データが含まれている場合は、マクロを記述する前に事前にその情報を入力しておく必要があります。これらの静的情報はほとんど変更されないためです。製品ID番号、製品価格、製品説明などの追加フィールドには、通常、静的データが含まれます。マクロを使用して、セルやグラフの書式設定、表の作成、並べ替え、数式の入力、範囲の管理、ピボットテーブルフィルターの定義など、繰り返し実行されるタスクを実行できます。

7. スプレッドシートを保存する

Excelでマクロを作成すると、ファイルはxlsm拡張子のマクロ有効ブックになります。ファイルを通常のスプレッドシート(​​xlsx)として保存しようとすると、「以下の機能はマクロなしのブックには保存できません」という警告ダイアログが表示され、保存可能な機能の一覧が表示されます。「いいえ」ボタンをクリックし、もう一度「名前を付けて保存」を選択し、 「ファイルの種類」ドロップダウンダイアログで「Excelマクロ有効ブック(*.xlsm)」を選択します。「保存」ボタンをクリックします。

03 スプレッドシートをマクロ対応ブックとして保存する JD サーティン / IDG

スプレッドシートをマクロ対応ブックとして保存する

8. クイック アクセス ツールバーのカスタム ボタンにマクロを追加する

利便性を高めるために、クイックアクセスツールバーにマクロ用のボタンを追加できます。利用できるショートカットキーが少ないため、これは便利な解決策です。

1. [ファイル] > [オプション] > [クイック アクセス ツールバー]を選択します。

2. [コマンドの選択元]フィールド ボックスで、小さな矢印をクリックし、リストから[マクロ]を選択します。

3. 下のダイアログ ボックスに、このブック内のすべてのマクロの一覧が表示されます。

4. SumTotalsマクロを選択し、  [追加]ボタンをクリックして、マクロを[クイック アクセス ツール バーのカスタマイズ]ダイアログ ボックスに移動します。

5. SumTotalsマクロを強調表示した状態で、このダイアログ パネルの下部にある[変更]ボタンをクリックします。

6. [ボタンの変更]ダイアログ ウィンドウを参照して、新しいマクロを最もよく識別するアイコン シンボルを選択します (ここでは電卓を選択しました)。

7. 次に、 「表示名」ボックスにマクロのわかりやすい名前を入力します。

8. 最後に、「OK」ボタンを 2 回クリックします。

9. 次に、クイックアクセスツールバーに新しいボタンが追加されていることを確認します。このボタンを1回クリックすると、マクロが実行されます。

04 クイックアクセスツールバーのカスタムボタンにマクロを追加する JD サーティン / IDG

クイック アクセス ツールバーのカスタム ボタンにマクロを追加します。

1. [ファイル] > [オプション] > [リボンのカスタマイズ]を選択します。

2. まず、[リボンのカスタマイズ]の[メイン タブ]パネルで[開発]ボックスがオンになっていることを確認します。

3. カスタム マクロのタブを選択するか、  [開発]タブの[アドイン]グループを選択/強調表示して、[新しいグループ]ボタンをクリックします。

4.新しいグループがすでに選択(強調表示)されている状態で、[名前の変更]ボタンをクリックすると、[名前の変更]ダイアログが開きます。

5. [表示名]フィールド ボックスが選択されています。このグループの名前 (カスタム マクロなど) を入力します。

6. 次に、[シンボル]ダイアログ ウィンドウを参照して、このマクロを最もよく識別するアイコン (ここでは砂時計) を選択し、[OK]をクリックします。

7. [コマンドの選択元]フィールド ボックスで、小さな矢印をクリックし、リストから[マクロ]を選択します。

8. 下のダイアログ ボックスに、このブック内のすべてのマクロの一覧が表示されます。

9. SumTotals マクロを選択し、  [追加]ボタンをクリックして、マクロを「カスタム マクロ」という新しいグループに移動します。

10. 必要に応じて、[名前の変更]ボタンをもう一度クリックし、[シンボル] ダイアログ ウィンドウからアイコンを選択します (クイック アクセス ツールバーのボタンと同じように、再度電卓を選択しました)。

11. 「OK」を 2 回クリックして、 「カスタマイズ」画面を閉じます。

05 リボンメニューのカスタムグループにマクロボタンを追加する JD サーティン / IDG

リボン メニューのカスタム グループにマクロ ボタンを追加します。

10. マクロのセキュリティ警告

マクロを含むブックを開くと、次のメッセージが表示されます。

「セキュリティ警告: マクロが無効になっています」というメッセージに続いて、 「コンテンツを有効にする」というボタンが表示されます。

マクロを使いたいなら、このボタンをクリックする必要があります。でも、本当に面倒ですよね!

この繰り返しタスクは、メッセージ バーまたはセキュリティ センターから簡単に無効にすることができます。

セキュリティセンターのマクロ設定

1.  [ファイル] > [オプション] > [セキュリティ センター] を選択します。

2.  [セキュリティ センターの設定]ボタンをクリックします。

3.メニューから「マクロ設定」を選択します。

4. 「すべてのマクロを有効にする」をチェックし、「OK」をクリックします。

はい、Excelでは危険なコードが実行される可能性があるため、これは推奨されませんと表示されています。インターネットや他人のシステムからマクロをダウンロードした場合、あるいはサイバースペースのどこかでマクロウイルスに感染した場合などは、このことが当てはまります。しかし、自分で作成したマクロのみを実行し、システムをマルウェアから保護していれば、危険なコードが実行される可能性は低くなります。

このオプションが適切でない場合は、他の 3 つのオプションのいずれかを選択し、マクロ ブックが開いたときに [コンテンツの有効化]ボタンをクリックし続けます。

注: セキュリティ センターのマクロの変更設定は、現在のプログラムにのみ影響します。

06 信頼センターのセキュリティ警告を変更する JD サーティン / IDG

セキュリティ センターでセキュリティ警告を変更します。

メッセージバー

5.  [ファイル] > [オプション] > [セキュリティ センター] を選択します。

6. 「セキュリティ センターの設定」ボタンをクリックします。

7.メニューからメッセージ バーを選択します。

8. 「ブロックされたコンテンツに関する情報を表示しない」をチェックし、「OK」をクリックします。

注意:セキュリティ センターのマクロ設定パネルで「通知なしですべてのマクロを無効にする」を選択した場合、メッセージ バーは表示されません。

Otpoo

Health writer and researcher with expertise in evidence-based medicine and healthcare information.