トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > VBAとの出会い編 第8話「星くん、VBAプログラムを完成させる!」

やってみよう!Excel VBAで業務改善!|VBAとの出会い編

なにが記述されたの?

コードウィンドウには、次のコードが記述されていました。

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"と記述されている行があるだろ、そこ注目だよ」

シーズン1 「VBAとの出会い」編: 各エピソードへのリンク
一覧にもどる