こんにちは、えぬしいです。
私は仕事がら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の敷居って思ったより低いんだな、とか、あれ?簡単そうだな?と思っていただけると幸いです。