オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

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

第8話「星くん、VBAプログラムを完成させる!」

第8話「星くん、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との出会い」編:エピソード一覧

一覧へ戻る

MENU