実際の動作をコード化する機能
マクロを作成するVBE(Visual Basic Editor)の中には、「マクロの記録」と呼ばれる「実際の動作をコード化してくれる機能」があります。
簡単な内容で操作をしてみると「A1のセルをコピーして、A2に貼り付ける」と言う操作をした場合には、次のようなコードを作成してくれます。
Sub Macro1()
‘
‘ Macro1 Macro
‘
‘
Selection.Copy
Range("A2").Select
ActiveSheet.Paste
End Sub
全ての作業が記録できるわけではない
ここまでみると実際の作業をコードにしてくれるなんて、なんて便利な機能なんだ!と言うところですが、残念ながら、書いているとおり、「作業した内容をそのままコードにする」ことしかできない機能です。
そのため、マクロの記録だけではご自身が行いたい作業の一部はできるかもしれませんが、全てを行うことはできません。
今回のコードでは次のような内容を行なっています。
「選択されたセルをコピー(Selection.Copy)」
「A2を選択する(Range("A2").Select)」
「そのシート上で貼り付け(ActiveSheet.Paste)」
この内容だけ見ると、最初にA1が選択された状態で行いましたので、A1がコピーされましたが、他のセルが最初に選択されていた場合でも、そのセルがコピーされ、A2に貼り付けられるコードになっています。
そのままの内容を操作したい場合には、このままでもいいかもしれませんが、自身が作業したいことを行うためには、少なくともこのコードがどのような内容を実行しているか?を分かった上で処理した方が良いと思います。
VBAを構成する3つのみ保存される
VBAを構成する要素としては、「オブジェクト」「プロパティ」「メソッド」「関数」「ステートメント」の5つがありますが、このうち、前半の3つしかコードにすることができません。
関数、ステートメントについては、自分で入力する必要があります。
ステートメントでよくあるのは条件により動作を分けたり、同じ作業を複数行、複数列に行ったりすることができるものがあります。
まとめ
マクロの記録では、実際に行った作業をコード化できる非常に便利な機能ですが、全てをコードができるわけではありません。
マクロの記録の有効な使い方としては、実際の動作を行い、それがどのようなコードになるのかを調べるために使うのが効果的です。
毎回インターネットや書籍で調べると時間がかかるので、実際に動作をさせて、内容を読み解くようにしましょう。
コメント