1. まとめトップ

この記事は私がまとめました

-AvA-さん

マクロとは

マイクロソフトのエクセルに標準装備されている、複数の手順を記憶して、自動的に実行させる機能のことを言います。

カセットテープレコーダーで自分の声を録音したことはありませんか?カセットテープレコーダーの「録音」ボタンをカチッと押して、ドキドキしながらマイクに向かって声を出します。「うまく録音できたかな?」とワクワクしながら巻き戻して「再生」ボタンをカチッと押すと、録音した声が再生されます。そして、その内容は何度も聞き直すことができます。

実は、Excelの「マクロ」は、この「録音機能」のようなものといえます。録音といっても、Excelは音を扱うソフトではないので「記録」といった方がよいでしょう。それでは、Excelで何を記録するのでしょうか?そうです。Excel上で行った操作を記録するのです。そして、記録した操作内容は、何度でも繰り返し実行することができます。カセットテープレコーダーで録音した声を「再生」するように、記録した操作内容を「再生」するイメージです。

マクロ記録を開始するとき、Excel 2003では、「ツール」メニュー→「マクロ」→「新しいマクロの記録」から開始する操作が一般的でしたが、Excel 2007/2010/2013では、ステータスバーに表示されている「マクロの記録」ボタンをクリックしてマクロ記録を開始します。

ステータスバーに「マクロの記録」ボタンが表示されていない場合は、ステータスバーを右クリック→「マクロの記録」をクリックしてください。

マクロ記録を終了するには、ステータスバーの「記録終了」ボタンをクリックします。

オルトキーを押したまま、続けてF8キーも押します。[マクロ]ダイア□グボックスが表示されます。

【生かせる作業の例】
■継続性のある作業(例:毎日行う、1日に5回行う)
■ルールさえ覚えれば誰でもできる作業(例:担当者に一切聞かずに作業ができる)
■1つの作業工程が長い作業(例:ファイルを作って、更にそれから担当者ごとにファイルを・・)

マクロとVBA(Visual Basic for Application)

意味が通じればどちらを使ってもいいのですが、ちょっとそれは違うのでは?という解説をときどき目にします。それは、
■マクロ記録で操作を記録すること→マクロ
■VBEでコードを手書きすること→VBA
という解釈です。
これは明らかに違います。

■マクロ記録で記録されるのはVBAのコード
■VBEで手書きしたコードを実行するのはマクロ機能
です。
マクロとVBAを、明確に区別して使い分ける必要はありません。しかし、マクロ→機能の名称、VBA→言語の名称ということを理解していないと、先のように変なことを言いかねません。

VBEを起動するには

Alt + F11 を押すと、Microsoft Visual Basic for Applications エディターが起動します。

VBE(Visual Basic Editor)は、VBAを作成するための統合開発環境ソフトです。

2003以前のOfficeでも有効なショートカットキー[Alt]+[F11]で、Office 2013でも2010でも2007でも、VBEを表示できます。
Alt+F11の押下を繰り返すとEXCEL←→VBEの画面を切り替えることができます。

VBEでは基本的に「プロジェクトエクスプローラー」「プロパティウィンドウ」「コードウィンドウ」の3つのウィンドウを表示して操作します。

標準で左側に「プロジェクトウィンドウ」と「プロパティウィンドウ」が開いていると思います。もし開いていない場合には「表示」>「プロジェクトエクスプローラー」または「表示」>「プロパティウィンドウ」で開くことができます。

イミディエイトウインドウの活用

「イミディエイト」 日本語にすると「ただちに、すぐに」という意味です。わざわざプロシージャを作成しなくても簡単なステートメントを実行することができます。たとえば、「beep」と記入して「Enter」キーを押せば、Excelでおなじみの注意を促す音がします。

イミディエイトウィンドウの中を一発でクリアするショートカットキーはありません。出力結果を消去するには
[Ctrl]キー+[G]キーを押す(イミディエイトウィンドウにフォーカスを移動)
 ↓
[Ctrl]キー+[A]キーを押す
 ↓
[Delete]キーを押す

イミディエイトウインドウはプログラム処理中の変数やプロパティの値をチェックする場合に利用します。その際にDebug.Printステートメントを利用することでイミディエイトウィンドウに処理結果を表示させることができます。

イミディエイトウィンドウに「?」を先頭に置いて、表示させたい変数や式、プロパティ値(オブジェクトから明示する)を記述し、Enterを押すと、次の行に値が表示されます。

行数の制限が200行なので、それ以上になると、1行目から消去されていきますので注意

【必ず設定しよう】「変数の宣言を強制する」にチェック

1 2 3 4 5