エクセルVBAのマクロ自動記録と実行について解説しています。
<< Visual Basic Editorの構造 :前の記事
前回は、VBE(Visual Basic Editor)の構造について簡単に説明しました。これからはVBEのコードウィンドウでVBAコードを記述していきますが、まずはマクロの自動記録がどのようなものかを確認していきましょう。また、マクロの実行も行っていきますのでマクロについてより理解できるかと思います。
マクロの自動記録の前に準備をしていきます。まずは、下記のような表を作成してください。
準備ができたら以下の手順でマクロの自動記録を行います。
①「ツール」→「マクロ」→「新しいマクロの記録」をクリックします。
②「マクロの記録」のダイアログボックスが表示されたら、「OK」をクリックします。
こちらでは、「マクロの名前」「ショートカットキー」「マクロの保存先」「説明」を編集することができます。「ショートカットキー」を設定するとCtrl+●で簡単にExcelのマクロを実行することができます。使用頻度の高い簡易なマクロを利用する場合などで威力を発揮します。
「マクロの保存先」は以下の3つの保存方法が用意されています。基本的に「作業中のブック」で問題ないですが、環境に合わせて選択してください。
保存先 | 内容 |
---|---|
作業中のブック | 現在のブックにマクロを保存します。現在のブックが開いている場合のみマクロを実行することができます。 |
個人用マクロブック | すべてのブックで実行できるマクロとして保存します。PERSONAL.XLSBというマクロブックが自動的に作成され、Excelを起動する際に読み込まれます。 |
新しいブック | 現在のブックとは別に新規ブックを作成してマクロを保存します。その新規ブックを開いている場合のみマクロを実行することができます。 |
また、「説明」はモジュール内でコメントとして記述される項目になります。マクロの詳細などを記述すると後で見たときにどのような処理かが一目で理解することができます。
これらの項目は必要がなければ何も編集しなくても問題ありません。必要な場合のみ編集するようにしましょう。尚、「OK」をクリックした瞬間から一連の操作がマクロに記録されていきます。
③セルA2に「りんご」、セルB2に「100」を入力したら、「記録終了」ボタンをクリックします。
④同じように「ツール」→「マクロ」→「新しいマクロの記録」からセルA3に「ばなな」、セルB3に「200」を入力してマクロを記録します。
これで、一連の操作がマクロに記録されました。それでは、どのように記録されたかVBEで確認してみましょう。Alt+F11でVBEを起動してみてください。
以下のようにプロジェクトエクスプローラの標準モジュールに「Module1」が追加されているのが確認できます。続いて「Module1」をダブルクリックするとコードウィンドウにVBAのコードが記述されています。
内容の解説は割愛しますが、一連の操作がコードウィンドウにどのように記述されているかをご確認ください。
マクロの自動記録が完了したら、早速マクロの実行をしてみましょう。マクロを実行する前に手動で入力したセルA2,B3,A3,B3の値は削除してください。全て削除したら下記の手順でマクロを実行していきます。
①VBEの「実行」→「マクロの実行」をクリックします。
②「マクロ」ダイアログボックスが表示されたら、「Macro1」を選択して「実行」をクリックします。
③「Macro1」のマクロが実行されます。
下記は「Macro1」のマクロが実行された結果です。セルA2に「りんご」、セルB2に「100」が自動入力されたのが確認できるかと思います。今回2つのマクロを記録しましたが、こちらではその中の1つである「Macro1」を実行してみました。
このように記録されたマクロはプロシージャと呼ばれるものにまとめられます。プロシージャの詳細については「エクセルVBAのプロシージャとは」で説明していますので、そちらをご確認ください。
記録したマクロは以下のように「Macro1プロシージャ」「Macro2プロシージャ」でまとめられています。マクロを実行する場合は、個別で実行していきます。
「Macro1プロシージャ」「Macro2プロシージャ」は別々に記録したため処理が分断されましたが、断片的に記録したマクロを1つずつ実行させるには手間がかかります。VBAのメリットの1つが自動化ですので、なるべく自動化させるようにしましょう。
例えば2つのプロシージャをまとめて処理したい場合は、以下のように1つのプロシージャにまとめることで1回の実行で一連の操作を処理することができます。
ちなみに、プロシージャの実行は実行したいプロシージャ内を選択した状態で、F5を押下すると処理が実行されます。F5はマクロ実行のショートカットキーなので、是非利用しましょう。
今回、マクロを実行するのにVBEのメニューバーから実行しましたが、他にもマクロを実行する方法がありますので、紹介します。
①VBEの「実行」→「マクロの実行」をクリックします。
①Excelの「ツール」→「マクロ」→「マクロ」をクリックします。
②マクロ一覧からマクロを選択して「実行」をクリックします。
①マクロ記録時に設定したショートカットキーから実行します。
下記の事例では、「Ctrl+Shift+K」でMacro1が実行されます。
①ボタンやオートシェイプ上で右クリックし、「マクロの登録」をクリックします。
②マクロ一覧からマクロを選択して「OK」をクリックします。
②マクロ登録したボタンやオートシェイプをクリックして実行します。
今回は、マクロの自動記録と実行方法について解説しました。記録されたマクロがどのように記述されているかが確認できたかと思います。最後の解説で1つのプロシージャをまとめた事例を説明しましが、プロシージャは他のプロシージャを呼び出すこともでき、プロシージャに値を渡すこともできます。
こちらでは、ただ決まった値を入力するだけのマクロで汎用性がまったくありませんでしたが、これから少しずつ実用的なマクロに仕上げていきます。次回は自動作成されたプロシージャの構造について解説していきます。
次の記事: プロシージャの構造 >>
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
ExcelのVBAについてのQ&A掲示板↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。