【エクセルVBA】VBAとマクロの違いは?
エクセルVBAを勉強していると、
- VBA
- マクロ
という言葉が出てきます。
この2つの言葉が「同じもの」なのか「違うもの」なのか、悩ましくないでしょうか?
結論としては、(少なくともエクセルVBAを使っているだけであれば)「VBA」と「マクロ」は、結果として同一のものを指すことも多く、両者を厳格に区別する必要性は、高くありません。
ただし、厳密にはこの2つの言葉の意味は違います。
どう違うのか、そのニュアンスを知っておくと便利な場面もあると思いますので、簡単に説明をしようと思います。
マクロ=手順書
マクロとは
「特定の作業をするための処理手順を(何らかの言葉で)記述して、実行できる状態になっているもの」
をいいます。
マクロは「実行可能なプログラム」のことといったほうがわかりやすいかもしれません。
「対人間の仕事」に置きかえれば、マクロは、
- 「他の人に作業をお願いするときの作業手順書」
にあたるものといえます。
VBA=言葉
VBAは「処理手順を記述するための言葉」です。
「対人間の仕事」に置き換えると、VBAは、
- 他の人に作業をお願いするときの作業手順書を「作るときに使う言葉」
ともいえます。
たとえば、
- 相手が日本人のときは、作業手順書を日本語で書く
- 相手がアメリカ人のときは、作業手順書を英語で書く
のと同じように、
- 相手がエクセルのときは、マクロをVBAで書く
というイメージです。
VBAとマクロの関係
上で説明したことをまとめると、VBAとマクロの関係がわかります。
要は、VBAとマクロは、
「VBA」という言語で処理手順を書いたものが「マクロ」
という関係にあるのです。
このように、この2つの言葉は、厳密には別の意味を持っています。
ただ、「VBAで作ったマクロ」について話をするときには、「VBA」や「マクロ」という言葉は、ほとんどの場合(裏から見ているか、表から見ているかが違うだけで)同じものを指します。
ですから、基本的には、どちらの言葉を使っても支障はありません。
ときどき、
- 手作業でプログラムを組んだもの=VBA
- 自動記録したもの=マクロ
と説明されることがありますが、このように両者を区別する説明は正確ではありません。
手作業、自動記録と作成する手段は違っても、両方とも「VBAで記述したマクロ」という意味で一緒のものなのです。
もし、「VBA」と「マクロ」という言葉を厳密に使い分けるとすれば、
- 作成「手段」から見るときは「VBA」
- できあがった「結果」から見るときは「マクロ」
という観点で、使い分けられることが多いと思います。
実際の使い分け方の例
- 作成「手段」から見るときは「VBA」を使う
-
- VBAのソースコード
- VBAのエディタ
- できあがった「結果」から見るときは「マクロ」を使う
-
- マクロの実行
- マクロの記録
ただ、上のVBAとマクロを入れ替えて、
- マクロのソースコード
- マクロのエディタ
- VBAの実行
- VBAの記録
と表現しても、(若干違和感を感じるかもしれませんが)意味は通じると思います。
ですから、あまりVBAとマクロの使い分けに神経質になりすぎる必要はないと思います。
また、他の人の文章を読むときも、VBAとマクロは、同じものだと思っておいて、ほとんど間違いはないでしょう。
私自身は、読む人に「VBAなのかマクロなのかどっち?」と悩んで欲しくないので「VBAマクロ」と表現することが多いです。