マクロの記録機能の概要
マクロの記録機能は、記録開始と記録終了があり、その間のExcelでの操作内容をVBAのプログラムに置き換えて記録する機能です。
例えば、記録開始を行い、A1セルに”あいう”と入力し、記録終了を行うと、それがVBAの関数として記録され、それ以降はその関数(マクロ)を実行する度にA1セルに”あいう”と入力されるようになります。
マクロの記録機能を使って、記録したままのプログラムを何も編集せずにそのままマクロとして活用するのは単純な処理の場合に限りますが、マクロ化したいExcelの操作をVBAではどのように書けばいいのか分からない場合には重宝する機能です。
記録開始と記録終了はリボンの「開発」タブで行います。
方法については詳細を後述しています。
マクロの記録開始
マクロの記録開始は、「開発」タブの「コード」グループの「マクロの記録」をクリックすることで始まります。
もしくはステータスバーの「マクロの記録」アイコンをクリックすることでも始まります。
クリック後に「マクロの記録」ダイアログが表示されます。
ダイアログには「マクロ名」「ショートカットキー」「マクロの保存先」「説明」の4つの入力個所があり、「マクロ名」と「マクロの保存先」の入力は必須です。
なお、これら4つの入力項目はあとでVBAでのプログラム変更や設定変更を行うことでいつでも変更できますので、ここで時間がかかりそうでしたら仮の入力や未入力でも問題ありません。
ちなみに私の場合は「マクロの保存先」のみは最初に決めていますが、「マクロ名」はあとで書き換えるため「Macro1」のまま記録します。
「ショートカットキー」も使うことが滅多にないため必要になったときにのみ、あとでショートカットの設定を変更します。
「説明」欄は入力したことがありません。
マクロの記録ダイアログ
マクロ名
マクロ名は必須入力になります。
初期値はMacro1などが書いてあります。
マクロ名には英字が大文字と小文字どちらも使えるのですが、大文字と小文字を区別しないため、AAAもaaaも同じとみなされます。
マクロ名には使ってよい文字と使ってはいけない文字が決まっています。
使えない文字を入力している場合は「入力した名前は正しくありません」とエラーメッセージが表示されます。
マクロ名に使ってよい文字
英字、漢字、ひらがな、カタカナ、(_)アンダーバー、数字(マクロ名の先頭以外)
マクロ名に使ってはいけない文字
マクロ名先頭の数字、@ ? ! # $ & . 空白文字、予約語(既にVBAで用途が決まっている単語)
既に作成済みのマクロと同じ名前をつける場合
既に作成済みのマクロ名を入力した場合は、既存のマクロと置き換えるか確認するダイアログが表示されます。
置き換えたあとは既存のマクロを元に戻すことが出来ません。
ショートカットキー
ショートカットキーでは作成中のマクロが完成して再度マクロとして実行する際のショートカットを割り当てることができます。
上でも書いたのですが、マクロの作成後にいくらでも割り当ての変更は出来ます。
ショートカットキーに使用できるキーの組み合わせは以下の通りです。
・Ctrlキー + A~Zキー
・Ctrlキー + Shiftキー + A~Zキー
Shiftキーも組み合わせに含める場合は、Shiftキーを押しながら英字キーを押してください。
マクロの保存先
マクロの保存先プルダウンには3つ表示されます。
個人用マクロブック
個人用マクロブックとはどのExcelブックからも参照されるマクロ専用のブックで、いろんなブックからも使いたいマクロがあればここに登録することで一元管理ができます。
個人用マクロブックの実体は「PERSONAL.XLSB」というファイルで、「C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Excel\XLSTART\」フォルダに保存されます。
Excelインストール直後や一度も個人用マクロブックでのマクロ作成を行ったことが無い場合は「PERSONAL.XLSB」は存在しません。
「PERSONAL.XLSB」が存在する場合はExcel起動時に自動で読み込まれるため利用者がわざわざ開いたりする必要はありません。
なお、当ブログで紹介しているVBAの多くは汎用的に利用できるものが多いため、この個人用マクロブックに登録することを推奨します。
新しいブック
Book1.xlsxなどの新しいブックを作成して、そのブックのVBAとして登録します。
あまり用途は無い気がします。
作業中のブック
今作業しているExcelブックのVBAとして登録します。
マクロを記録後にブックを保存すると、VBAに記録されたプログラムも一緒に保存されます。
説明
VBAに記録されるプログラムのコメントになります。
プログラムのコメントとは、VBAの記録終了後に作成されたプログラムの上に記述されているシングルクォーテーション「’」で始まる部分のことを指します。
相対参照で記録
「マクロの記録」の下に「相対参照で記録」というボタンがあります。
これはセルの操作を記録する際に、シートのセルの位置をA1などと決まった位置である絶対参照として記録するのか、もしくは、マクロが開始したときのセルの位置を基点として操作したセルの位置がどこかを判定する相対参照として記録するのかを決めます。
意味が分からなければ何もしなくていいです。
何もしない場合は絶対参照のセルの位置をA1やB2などで記録します。
押されている状態だと相対参照、押されていない状態だと絶対参照で記録します。
私自身はこの機能は使いません。
あとでプログラムで書き換えれば済むのもありますが、相対参照で記録したプログラムは見づらくて嫌いなためです。
Excel操作の記録
記録終了するまでのExcel操作をVBAに記録します。
Excelの操作とは、セルのクリックや数字の入力や範囲選択や色やフォントの変更など、Excel上で行う操作すべてを指します。
VBAには操作した順にプログラムが書き込まれます。
「あ、間違ってマウスホイールをスクロールしちゃった」とかも記録されますので記録中に操作したことは覚えておくとVBAのプログラムを見るときに参考になります。
記録中にCtrl + Zキーまたは「元に戻る」ボタンを押した場合は、記録も前の状態に戻されます。
なお、一部のExcel操作はVBAには記録されないものがあります。
自動記録された内容はマクロの記録終了後にVBEを起動して確認することができます。
マクロの記録終了
一連のExcelの操作が完了しましたら、マクロの記録を終了します。マクロの記録終了は「マクロの記録開始」をクリックした箇所と同じ場所にあります。
「開発」タブ→「コード」グループ→「記録終了」