VBA入門 マクロの記録でマクロを自動コーディング!

こんにちは、えぬしいです。

私は仕事がらC#やJava、PL/SQLなどいろいろな言語を使う機会が多いのですが、意外と重宝するのがVBAです。

この業界、簡易ツールとか作成する機会が多いんです。

テキストファイルを読み込んで成型してExcelに展開したり、多くのExcelファイルから欲しい値を抜き出して別のExcelに展開したり、、など使い道は色々ですが、仕事がらルーチンワークは出来るだけ自動化するようになっています。

もちろん、上記の事はJavaでもC#でも出来るのですが、それぞれに開発環境を用意する必要があり、若干面倒です。

VBScriptもVBAと同じようにコーディングできますが、こちらはどちらかというとバッチ的に作成する事が多いです。

ExcelVBAだとINPUT,OUTPUTがそのままExcelに出せますし、開発ツールも別途インストール不要ですので、実はツール用言語として優秀なのです。

でもVBAって難しそう。。

と最初は思う方も多いと思います。

でも安心してください!

なんとExcelには自動でマクロをコーディングしてくれる機能があります。

まずはリボンに「開発」タブを追加しましょう。

Excelの左上のアイコンをクリックし、「Excelのオプション」→「基本設定」→「開発」タブをリボンに表示する にチェックを入れて「OK」ボタンをクリックしください。

Excelのバージョンによっては少しやり方が変わるかもしれませんが、基本は同じです。

リボンに「開発」タブが追加されました。

別に「開発」タブが無くてもVBAのコーディングにはあまり支障がありませんが、出しておくと便利かと思います。

ここまで来たら自動コーディングまであっという間です。

「開発」リボンの「マクロの記録」をクリックしてください。

これもExcelのバージョンによって違うのですが、大体上記のような内容のダイアログ画面が表示されます。

ここで「OK」ボタンをクリックしたらマクロの記録、すなわち自動コーディングが開始されます。

では「OK」ボタンをクリックし、上記のようにB3セルを選択し、背景色を黄色にしてください。

次に「開発」リボンの「記録終了」をクリックしてください。

おめでとうございます!これで自動でVBAのコーディングが行われ、マクロが作成されました。

早速作ったマクロが動くか試してみましょう。

セルB3の背景色を戻しておき、「開発」リボンのマクロをクリック。

作ほど作成された「Macro1」を選択し、「実行」ボタンをクリックしてください。

すると、B3のセルの背景色が黄色になりました。

簡単ではありますがれっきとしたVBAプログラムです。

では、実際に出来たソースコードを確認してみましょう。

「開発」リボンの「VisualBasic」をクリックしてください。

VisualBasicの画面が立ち上がりましたね。

この画面からVBAのプログラミングを作っていくことになります。

所謂、「コーディング」と呼びます。

そして実際に「マクロの記録」により作成されたソースコードは「標準モジュール」のModule1をダブルクリックするとエディタに表示されます。

Sub Macro1() –①

‘ Macro1 Macro –②


Range(“B3”).Select –③
With Selection.Interior –④
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
簡単に説明していきますと、
① プログラムの名前を記載し、ここからプログラムの実行が始まる事を示しています。
この呼び出されるプログラムの単位をプロシージャと呼びます。
Sub の後にプロシージャ名(マクロ名)を定義し、最後のEnd Subで締めくくります。
Sub(サブ)プロシージャとも呼びます。

② シングルクォート"'"の後の文言はコメント扱いとなります。
コメントとは、メモのようなもので、実際にプログラムの実行には関係しません。
しかしながらこのコメントにそのプロシージャの説明などを書いておくと可読性があがります。
プログラムを組む上では「可読性」は大きな意味を持つことになりますが、またそれは別の機会に。

③ Range("B3").Select とは、セルB3を選択せよ、という命令です。
Excelシート上でB3セルをクリックして選択することと同じことを、マクロで実行できるのです。
このB3を書き換えることにより、任意のセルを選択も可能です。
ちなみにB3からC5セルを選択などももちろん可能です。
その場合は"B3:C5"などのように記載すればOKです。

④ With から End With で、選択したセルの書式を変更しています。
マクロの記録で背景色を別の色に変えたり、フォントの文字色を変えたり、罫線を書いたり色々試してみてください。
微妙にソースコードが変わっていくと思います。
各設定値などは「F1」キーを押すことによりヘルプが立ち上がるので、詳細はそちらを参考にしてみてください。
ちなみにWithですが、Withはコーディングを簡略化できる書き方です。
Withを使用しないと下記のような書き方になります。
Selection.Interior.Pattern = xlSolid
Selection.Interior.PatternColorIndex = xlAutomatic
Selection.Interior.Color = 65535
Selection.Interior.TintAndShade = 0
Selection.Interior.PatternTintAndShade = 0

WithにSelection.Interior.Patternを使用することにより、Selection.Interior.Patternの記載を省くことが出来ます。

いかがでしたか?

思ったより簡単にプログラムが出来たかと思います。

ちょっと書き方が分からないときにも、このマクロの記録を使うと簡単にコードの書き方を知る事が出来ます。

後はこれらを自分好みにカスタマイズしていくと、サクサクプログラムが出来ていきます。

まずは、VBAの敷居って思ったより低いんだな、とか、あれ?簡単そうだな?と思っていただけると幸いです。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です