コードウィンドウには、次のコードが記述されていました。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2010/2/19 ユーザー名 : YAGI
'
'
Range("A1").Select
Selection.Font.ColorIndex = 3
End Sub
※今回はExcel2003を使用して作業を行っている、という設定で話を展開しています。
Excel2007では、同様の操作を行ったときColorIndexプロパティではなくColorプロパティで記録されます。
「それは、さっきの"マクロの記録"という操作で記録されたコードさ。マクロの記録というのは、
ユーザーが行った操作を自動的にVBAのコードとして記録してくれる便利な機能なんだ。
ん、どうした星?」
見ると、星くんがプンプンとふくれています。
「なんだい、なんだい!こんな便利な機能があるのに、なんで今まで教えてくれなかったんだよ!
これを使えば、あっという間にVBAのプログラムが作れちゃうじゃないか!」
八木くんが、フーッとため息をつきます。
「…やっぱりな。そういうと思ったよ。実はこの機能、あまり教えたくなかったんだ。
いいか星、それはおまえの勘違いだ。
そしておまえだけじゃなく、世の中のたくさんのユーザーも同じ勘違いをしてる。
いいかい?最初にいったけどVBAの構文には、"オブジェクトに対する操作"、"制御構文"、"関数"の3つがある。
でも、マクロの記録で記録されるのは、この中の"オブジェクトに対する操作"だけなんだ。
いくらマクロの記録を駆使しても、複雑なVBAプログラムを作ることはできないんだよ」
「そうなのかい?」
「うん。VBAの初心者がこの機能を知ると、まるでマクロの記録だけでVBAをマスターできてしまうような錯覚をおこす。
…だからまだ教えたくなかったんだ。
最初はメンドーでも基本的な構文の学習を繰り返し、
ある程度VBAへの理解が深まってからこの機能を利用したほうがいい。
…とはいえ星も基本はソコソコわかってきてるみたいだし…まあいいだろう。
ところで、そのコードに"Selection.Font.ColorIndex = 3"と記述されている行があるだろ、そこ注目だよ」