マクロの編集にはVBEを利用する
マクロの記録機能を使うとExcelの操作をVBAのプログラムとして登録されます。あとは自動作成されたプログラムを再利用することでExcelの操作をマクロで実行することができるようになります。
しかしマクロの記録機能で作成されたプログラムには、ほとんどの場合で余計なコードが大量に書き込まれています。また、実際に作業で使いたいマクロには、「この部分は○回繰り返す」とか「この値が○の場合のみ処理が異なる」などの条件があるのが普通です。
このような繰り返し処理や条件分岐はマクロの記録機能では自動生成されないため自分でプログラムを書く必要があります。
作成したマクロを編集するにはVBE(Visual Basic Editor)で行います。VBEはExcelに付随するアプリケーションです。そのためVBEが起動中にExcelを終了するとVBEも一緒に終了することになります。
VBEの起動方法
VBEの起動方法には3通りの方法があります。
どれで起動しても最終的にはVBEの画面に遷移します。
ショートカットでVBEを起動する
ショートカットのAltキー+F11キーで起動します。
リボンからVBEを起動する
Excelブック表示中に「開発」タブ→「コード」グループ→Visual Basicをクリックして起動します。
もし「開発」タブがない場合は「Excelのマクロとは」の中段以降にある「マクロを使う方法」項を参照して追加してください。
マクロダイアログから起動する
Excelブック表示中に「開発」タブ→「コード」グループ→「マクロ」をクリックすると「マクロ」ダイアログが表示されます。
Altキー+F8キーでも同様です。
ダイアログの「マクロ名」テキストボックスから編集対象のマクロをクリックして、「編集」ボタンをクリックするとVBEが起動します。
この方法で起動した場合は上記の2通りの方法とは異なり、編集したいマクロを開いた状態でVBEが起動します。
マクロダイアログ
マクロダイアログに表示されるマクロ名は、今開いているすべてのブックのマクロが対象になります。
マクロの保存先プルダウンからブックを選択すると、そのブックのマクロのみが表示されます。
プログラムの編集方法
マクロの実体は関数です。
マクロの記録機能で開始から終了までを行うと1つの関数が作られることになります。
プログラムの編集はこの関数を編集することになります。
SubからEnd Subまでが1つのマクロになる
マクロの記録機能で作成された関数は「Sub」と書かれた行ではじまり、「End Sub」と書かれた行で終わります。
「Sub 」に続くのが関数名になります。これがマクロ名です。
マクロ名を変更したい場合は、Sub の後ろの関数名を書き換えることになります。
コメントの書き方
シングルクォーテーションの「’」で始まる部分は「コメント」と言います。
「コメント」とはプログラムの動作には影響しないメモのことを指し、VBAでは「’」から後ろはただのメモ書きです、という仕様になります。
「コメント」部分はプログラムの動作には全く影響しないため、自分が忘れてしまいそうなメモ書きなどを好きに書くことができます。
「コメント」はSub~End Subの範囲内に書かれていなくても構いません。Subの上に書いてもいいですし、下に書いてもいいです。
1 2 3 4 5 6 7 |
' コメント1です Sub macro12() ' コメント2です Range("A1").Select End Sub ' コメント3です |
プログラムの編集
上のプログラムの4行目は、「A1セルを選択する」という命令になります。
この”A1″を”A:D”に書き換えると、「A列からD列を選択する」という命令に変わります。
編集内容の保存
左上にある保存ボタンを押すか、Ctrl + S で保存できます。「ファイル」メニュー→「○○の上書き保存」でも同じです。
このときの保存は、マクロダイアログで選択されていた「マクロの保存先」になるためブックに保存されることになります。
この時点でブックを保存していない場合で「Book1」などの状態であればブックの保存ダイアログが表示されます。
その際に、ファイルの種類プルダウンで「Excel マクロ有効ブック(*.xlsm)」を選択する必要があります。
マクロを保存するには拡張子をxlsmにします。
xlsxのままではマクロを保存できないためです。
マクロの削除
マクロを削除する場合はSubからEnd Subまでの行を選択してDeleteキーで削除します。
マクロダイアログでマクロ名を選択して削除ボタンを押すことでも削除できます。
ExcelとVBEの切り替え
ExcelとVBEは同時に起動することができます。
タスクバーでそれぞれ独立して表示されますのでクリックして画面を切り替えることもできます。