初心者がVBAのマクロをコーディングするには、イミディエイトウィンドウで試したものをプロシージャにまとめるて名前を付けると良いでしょう。そうしてできたものがいわゆるマクロです。作成だけで考えるならマクロ記録機能を使えば良いのですが、ここではあくまでも自分で作れることを目指す方向けに紹介します。
【もうマクロ記録はやめましょう】初心者にも作れた初めてのマクロ
イミディエイトウインドの操作からマクロへ
Sheet1(Sheet1)をダブルクリックすると、右側に白い入力可能なエリアが現れます。ここにマクロを記述します。今回はイミディエイトウィンドウで試してみた下記のコードを書いてみます。
下図には Option Explicitという文字が出ています。同じものが出ていても出ていなくても今は影響ないので無視して大丈夫です
Sub 初めてのVBA と入力してEnterをします。
すると下図のように自動補完されます。
これがプログラムの名前と、始めと終わりの位置を示しています。
ソースコードの内容を貼り付ければマクロのできあがり
イミディエイトウィンドウのソースを貼りつけると、こうなります。
インデントを入れると読みやすい
読みくいのでインデントを入れます。まとめて選択して[Tab]でまとめてインデントできます。
プログラムのはじめと終わりが明確読みやすくなりました。
Sub 初めてのVBA()
Range("A1").Value = "A1セル"
Cells(1, 2).Value = "1行2列目"
Cells(2, 2).Value = "2行2列目"
Cells(3, 2).Value = "3行2列目"
Cells(4, 2).Value = "4行2列目"
Cells(5, 2).Value = "5行2列目"
Range("A1").Offset(1, 2).Value = "A1セルから1行2列オフセットしたセル"
Selection.Value = "選択しているセル"
Range("D1").Interior.Color = 255
End Sub
まとめ
イミディエイトウィンドウでエクセルをコマンドで操作する感覚を得ていれば、後はそれをプロシージャとして名付ければマクロのできあがりです。もうマクロ記録機能に頼るのはやめましょう。それが上達の一歩だと私は思っています。
- Sub [プログラム名]としてEnter
- Sub [プログラム名]() から End subの間にコーディングをする
- 読みやすさのためTabでインデントを入れる
脱初心者のために
これでひとまず動くプログラムが作成できましたが、まだまだ汎用性に欠けます。操作する対象セルも、操作するセル位置も文字列も、全てコーディングで直接指定しているからです。
条件分岐や繰り返しをさせることで汎用性を増すことができます。
コメント