はじめに
日々の業務で活用するシーンの多いエクセル(Excel)ですが、お客様とお話しているとエクセルの「マクロ」と「VBA」を混同されている方がいらっしゃいます。
この「マクロ」と「VBA」の違いについて、わかりやすくご説明したいとおもいます。
エクセルとは
エクセルとは どんなソフト? マイクロソフト・エクセル(Microsoft Excel)とは、Microsoft(マイクロソフト)が主要OS(Windows・macOS・iOS・Android)向けに開発・販売している表計算ソフトです。[…]
マクロについて
マクロとは
マクロとは、エクセルで行ったGUI操作を記録させて、同じ手順で制御できるようにする機能の名称です。
機能の名称という意味では「オートフィルター」や「ピボットテーブル」などと同じ立ち位置です。
皆さんが日常的に利用しているパソコンやスマートフォンはどのように操作を行っていますか? おそらく、画面に表示されているアイコンや画像をクリックして操作をしているのではないでしょうか。 このように、画面から直感的に操作ができるコン[…]
マクロの例
- セルの背景色塗り
- 小計行の作成
- 罫線の設定
などの一連のGUI操作を「Marcro1」というマクロ名で登録しておき、それを呼び出して実行しているイメージのアニメーションです。
VBAについて
VBAとは
VBAとはプログラミング言語です。
- Visual
- Basic
- for Applications
の頭文字をとった略語です。
VBAとマクロの関係性
先述のマクロがこのVBAというプログラミング言語で制御されています。
GUI操作をしながらマクロを登録している間に、意識せずとも裏ではVBA言語のソースが生成されているということです。
VBAとVBの関係性
もうひとつ、VBAと混同しやすいものに「VB」があります。
下記の通り、VBAはMicrosoft社が開発しているVBというプログラミング言語を、エクセルを中心としたオフィスのアプリケーション向け(=for Applications)に搭載したものです。
マイクロソフトが1990年代に開発していた汎用プログラミング言語・Microsoft Visual Basicを、同社製品のMicrosoft Officeに搭載したものがVBAである。VBAを使用することで、Excel、Access、Word、Outlook、PowerPointなど、Officeのアプリケーション・ソフトウェアの機能をカスタマイズしたり、拡張したりすることができる
https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications
下記の通り、開発環境の要否、画面開発の要否に違いがあります。
VBAはエクセルなどがインストールされていれば、別に開発環境を準備する必要はなく、画面を開発せずともGUI操作が可能になるため、VBに比べると開発を始めやすいと言えます。
また、先述の通り「VBA」は「VB」を基にした言語のため、VBAの開発で学習した内容は、VBの開発でも役に立ちます。
VB | VBA | |
---|---|---|
開発環境の要否 | IDE環境「Visual Studio」が必要 | エクセルなどの付随機能で可能 |
画面開発の要否 | 画面開発が必要 | エクセルなどが画面を担当 |
まとめ
マクロとVBA・VBの違いについてご理解いただけたでしょうか。
要点をまとめると下記の通りです。
マクロとは
- エクセルで行ったGUI操作を記録させて、同じ手順で制御できるようにする機能の名称。
VBAとは
- エクセルなどを制御できるプログラミング言語の名称。
- マクロもVBAで制御されている。
VBとは
- VBAの基であるMicrosoft社が開発するプログラミング言語の名称。
- VBAより開発のハードルが高い。
- VBAで学習した内容はVBでも役に立つ。