Excel VBAを初めて扱う人はコードを「どう書けば良いのか」、「どこを確認するのか」など分からない事が多くて困る事がよくあると思います。
本記事では上記の様なExcel VBA初心者向けに「マクロの記録」を用いてExcel操作を自動化する方法を解説していきます。
「マクロの記録」はExcel操作をVBAのコードに自動で変換・記録してくれる機能なので書き方が分からなくてもVBAのコードが書け、それを確認・編集していく事で書き方のイメージを掴む事が出来ます。
最初にVBAを扱うのなら「マクロの記録」を使って書いてみるのがおススメですよ。
確か「Excel操作をVBAのコードに変換・記録する」機能でしたよね?
その通り!自分が行っている操作がどの様にVBAでは書かれているのかが分かるのでVBAのイメージを掴むのに適しています。
- 「マクロの記録」を用いたマクロの作成が出来る様になる。
- 記録したマクロ(VBAのコード)を確認・編集する事で書き方のイメージが掴める様になる。
マクロの「記録」と「確認」
ここではマクロの記録と確認方法について解説していきます。
「マクロの記録」による作成
「開発」タブの「マクロの記録」をクリックします。
マクロの記録のダイアログが表示されるのでマクロ名など特に変更が無ければそのまま「OK」をクリックします。
マクロの記録が開始されるので記録したい動作を行います。今回はB2セルに「はじめてのマクロ」と入力する動作を記録してみます。
B2セルへ「はじめてのマクロ」と入力が終わったら、「記録終了」をクリックして記録を終了させます。
作成したマクロの確認
作成したマクロはVBE(Visual Basic Editor)でVBAで書かれたコードを確認出来ます。
先程作成したマクロ「Macro1」がVBAでどの様に書かれているか見てみましょう。
「開発」タブの「Visual Basic」をクリックします。
VBEが表示されるので、その中の「標準モジュール」→「Module1」をクリックすると「Macro1」のコードが確認出来ます。
マクロは標準モジュール内に作成されるので、マクロを作成した時はここを確認しましょう。
マクロの「実行」と「編集」
この項目ではマクロを実際に実行する方法とその編集について解説していきます。
マクロの実行
ここでは実際に作成したMacro1のマクロを実行してみます。
なおマクロの動作確認の為、先程B2セルに入力した「はじめてのマクロ」は一旦削除してから始めます。
「開発」タブの「マクロ」をクリックします。
先程作った「Macro1」を選択し、「実行」をクリックします。
「Macro1」が実行され、B2セルに「はじめてのマクロ」が入力されます。
今回は「開発」タブからの実行でしたが、この他にも下記方法でもマクロを実行出来ます。
- セル上に実行ボタンを作成し、マクロを割当てる
- マクロ起動のショートカットキーを独自に割当てる
- VBE上で動作を確認する
マクロの編集
作成したマクロはVBE上で確認するだけではなく、編集する事も可能です。
今回は先程作成したMacro1の下記2点を変更し、選んだセルの場所に「はじめてのマクロ」と入力する様に編集していきます。
Sub Macro1()
'
' Macro1 Macro
'
'
Range("B2").Select
ActiveCell.FormulaR1C1 = "はじめてのマクロ"
Range("B3").Select
End Sub
- 7行目のRange(“B2”).Selectを削除
- 不要な処理の9行目のRange(“B3”).Selectを削除
この2つを削除しただけでB2セルではなく、任意の場所に入力する様に変わるんですか?
はい。元の処理の動きが分かれば、上記2点を削除する意味も分かると思うので順番に解説していきますね。
Macro1は下記の流れで処理を行っています。
①Range(“B2”).Select
B2セルを選択し、アクティブセルにする。
②ActiveCell.FormulaR1C1 = “はじめてのマクロ”
アクティブセル(B2セル)に「はじめてのマクロ」と入力
③Range(“B3”).Select
B3セルを選択
アクティブセルは今現在選んでいるセルを指していて、この処理では②の入力前に①でB2セルを選んでいるのでアクティブセルは常にB2セルとなります。
だから常にB2セルに入力される動きだったんですね!
なので①を削除する事で、マクロの実行時に選んでいるセルがアクティブセルとして扱われるようになり任意の場所に入力が出来る様になります。
成程。では次の③を削除するのは何故なんですか?
③は②の入力が完了した際にカーソルが移動した動きが記憶されたもので入力する動作には不要な処理です。
これが残っていると入力後毎回B3セルにカーソルが移動してしまうので一緒に削除してしまいましょう。
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveCell.FormulaR1C1 = "はじめてのマクロ"
End Sub
以上で編集は完了で、こちらを実行すると下記の様に任意のセルの場所で入力が出来る様になります。
終わりに
以上で解説を終了します。
「マクロの記録」はExcel上で行った操作をVBAに自動で変換・記録してくれる便利な機能です。この機能を活用して普段行っている操作をVBAに変換し、色んな書き方のパターンを覚えていく事で自分で書ける処理も広がっていく事が出来ます。
また、VBAの書き方を覚えた後でも、「処理をどの様に書けば良いか?」考える際などExcelの動作を調べるのに役立ちますので是非習得してみて下さい。
最後までお読みいただきありがとうございました。