ここまでVBAについて知っておきたい最低限の内容について解説してきました。
このページでは、それらの内容を踏まえ、これまでにこのサイトで作ったマクロをVBAから編集してみることで、マクロの記録とVBAでのプログラミングとの関係をより深く理解してみたいと思います。
今回は、マクロの記録のページで作った「A5セル削除」という単純なマクロをVBAから編集してみることにしたいと思います。(「A5のセルを削除するマクロを持っていない方は、こちらからダウンロードして下さい →A5セル削除のマクロ)
このマクロは非常に単純なマクロで、その名の通りA5のセルの中身を削除するマクロです。
前回、このマクロを作ったときには「マクロの記録」によって、これを作成しましたが、今回はこのマクロに記録してある内容をVBAの編集エディタであるVBEから変更してみたいと思います。
今回は、【A5のセルを削除】という内容から → 【A6のセルを削除】という内容へ、マクロの内容を変更します。
「A5セル削除」というマクロを含んだエクセルシートを開きます。

エクセルシートを開いたら、VBEを起動します。

VBEの起動が確認されたら、「A5のセルを削除する」という内容を「A6のセルを削除する」という内容へ変更します。
VBEを開くと
Sub A5セル削除()
'
' A5セル削除 Macro
' マクロ記録日 : 2009/1/31 ユーザー名 : Administrator
'
'
Range("A5").Select
ActiveCell.FormulaR1C1 =""
End Sub
という、このマクロのソースコードがソースエリアに書いてあるのが読み取れます。
この程度のマクロでは、書いてあるソースコードが非常に単純なので簡単に理解できると思いますが、このソースコードの中では
Range("A6").Select
ActiveCell.FormulaR1C1 = ""
という部分が「A5のセルを削除する」という命令になっています。
このソースコードのうち 「A5」の部分を → 「A6」に変更します。
つまり、A5の部分を削除し、A6に変更してやれば良いのですね。
Range("A6").Select
ActiveCell.FormulaR1C1 = ""
これで、このマクロの内容が「A5のセルを削除する」という内容から「A6のセルを削除する」という内容へ変更されました。
内容を変更したら、VBEで変更した内容を保存します。
保存するためにはメニューバーの中にある、保存ボタンをクリックするか、「Ctrl + S」のショートカットキーでも保存してください。
これで、マクロをVBAから編集する作業は終了です。
予想していた以上に簡単な作業ではなかったのでしょうか?
このように、自分の作ったマクロをVBEを使って編集することを繰り返すことによって、VBAは上達します。また、自分の知らないソースコード(プロパティなど)についても理解が深まるでしょう。