VBAとマクロの関係
そもそも、マクロを勉強していたのに、いきなりVBAの話が出てきて戸惑っている方もいらっしゃるかもしれません。
そんな方のためにVBAとマクロの関係についてもおさらいしておきたいと思います。
まず、一番最初に知っておいて頂きたい事は、「VBAとマクロは本質的にはまったく同じもの」だということです。
コレ、本当に重要です。
この大前提だけさえ理解しておいてもらえれば、VBAのプログラミングなんておちゃのこさいさいだと言っても過言ではありません(笑)
この前提を理解してもらうために、VBAとマクロの関係について以下で詳しく解説していくことにしましょう。
大前提① マクロの記録 = VBAでのプログラミング
私たちはこれまで、マクロを使ってエクセルに動作を記録させる方法を学習してきました。
具体的には「マクロの記録」→「記録させる動作の実行」というプロセスです。
しかし、実はこの行動は「VBAでのプログラミング」となんら変わりがありません。
なぜならば、マクロで記録させた動作の1つ1つがVBAに変換されてエクセルに記録されていたに過ぎないからです。
実はつまり、「マクロの記録」というのはマウスやキーボードを使って、間接的にVBAでプログラミングをしているのと同じだということです。。
例えば、あなたが「マクロの記録」で「A1セルを選択」→「セルの色を黄色に変換」といったマクロを記録させたとしましょう。
実はこのとき、エクセルの中では以下のような形で上記の操作が記録されています。
Range("A1").Select
Selection.Font.Colorindex=6
現時点で、上のVBAの意味が理解できなくてもまったく問題ありません。
ここで言いたいことはただ1つ。マクロとVBAは見た目が違うだけで、中身まったく同じと言うことです。結局、エクセルマクロはVBAで構成させていて、これまではそれに気付かずにいただけということですね。
マクロの記録 = VBAでのプログラミング
これは大切なことなのでしっかりと理解しておきましょう。
大前提② マクロを実行するということ = VBAを実行するということ
「大前提①」でマクロの記録はVBAでのプログラミングと同じであると説明しました。
これはつまり、裏を反せば「マクロの実行」が「VBAの実行」を表しているのと同じ事だということになります。
先ほど記録させた「A1のセルを選択」→「セルの色を黄色に変換」というマクロを実行することは「Range("A1").Select Selection.Font.Colorindex=6」というVBAでのプログラミングを実行することと何ら変わりはありません。
ここから分かることは、マクロの記録とVBAによるプログラミングの2つを理解しておけば、マクロで記録したものをVBAで編集することが可能であるし、またその逆も出来るということです。
マクロとVBAは一心同体のものだということが理解できれば、VBAについての学習は半分くらい終わったといっても良いかもしれません。
マクロが既に理解できるあなたにとっては、VBAを学習するということはマクロで理解した内容をVBAに置き換えていくだけに過ぎないからです。
この「2つの大前提」は大切なのでしっかりと理解しておいて下さいね。
次ページではVBAの効率的な学び方について解説していきます。