マクロの自動記録と実行の方法

<< 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(Visual Basic Editor)のメニューバーから実行する

①VBEの「実行」→「マクロの実行」をクリックします。

マクロの実行

Excelのメニューバーから実行する

①Excelの「ツール」→「マクロ」→「マクロ」をクリックします。

Excelの「ツール」→「マクロ」→「マクロ」

②マクロ一覧からマクロを選択して「実行」をクリックします。

マクロ一覧からマクロを選択して「実行」

ショートカットキーで実行する

①マクロ記録時に設定したショートカットキーから実行します。

下記の事例では、「Ctrl+Shift+K」でMacro1が実行されます。

マクロ記録時に設定したショートカットキーから実行

ボタンを配置して実行する

①ボタンやオートシェイプ上で右クリックし、「マクロの登録」をクリックします。

ボタンやオートシェイプ上で右クリックし、「マクロの登録」をクリック

②マクロ一覧からマクロを選択して「OK」をクリックします。

マクロ一覧からマクロを選択して「OK」をクリック

②マクロ登録したボタンやオートシェイプをクリックして実行します。

マクロ登録したボタンやオートシェイプをクリック

まとめ

今回は、マクロの自動記録と実行方法について解説しました。記録されたマクロがどのように記述されているかが確認できたかと思います。最後の解説で1つのプロシージャをまとめた事例を説明しましが、プロシージャは他のプロシージャを呼び出すこともでき、プロシージャに値を渡すこともできます。

こちらでは、ただ決まった値を入力するだけのマクロで汎用性がまったくありませんでしたが、これから少しずつ実用的なマクロに仕上げていきます。次回は自動作成されたプロシージャの構造について解説していきます。

次の記事: プロシージャの構造 >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

  • このエントリーをはてなブックマークに追加
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。