Excelには、Excel上の処理を自動化する機能があります。一般的には「マクロ」という呼称で認知されていますが、一方でVBAという呼称を耳にしたことがある方もいることでしょう。
ほとんどの場合、それぞれの呼称は同じこと(処理の自動化)を指して使われていると思うのですが、この機会に言葉の正式な意味合いを正しく理解しておきましょう。
この記事では、ExcelのマクロとVBAの違いについて、解説します。
マクロとは、IT用語で「プログラムを使った自動化の機能」のことを指します。
本来、Excelに限定された言葉ではなく、コンピューター領域で使われる言葉なのです。実態として、Excel以外の分野で使われることが少ない反面、Excelの自動化機能のことをマクロと呼ぶ機会が多いため、「マクロ=Excelの自動化」というイメージが定着したのでしょう。
VBAとは、Visual Basic for Applicationsの略語で、プログラミング言語のひとつです。
MicrosoftがOffice製品のためにWindowsに搭載したプログラミング言語で、Excelを筆頭にしたOffice製品上で行う作業を自動化するために使われます。
通常、プログラミング言語は、別途、開発環境や実行環境をパソコンにインストールする必要がありますが、VBAはOffice製品上でのみ動作する言語となりますので、開発・実行環境を整える必要はありません。
正確には、ExcelやWordといったOfficeアプリ自体に機能として搭載されています。
<Excelに搭載されたエディタ>
以上の通り、マクロとは自動化のプログラム、VBAとは(Excelの)マクロを記述するプログラミング言語のことです。
イメージで説明すると下記の通りです。
Excelのマクロ機能をご存じの方は、「マクロの自動記録機能」もご存じでしょう。
マクロには実際の人間の作業を記録して、自動化のプログラムを自動生成する機能があります。業務自動化のテクノロジー「RPA」にもレコーディングと呼ばれる同様の機能があり、人気かつ必要不可欠な機能になっているようです。
個人的な見解ですが、ExcelのマクロもRPAのレコーディングも「よく使われるなぁ」という印象です。Excelのマクロを活用する場合には、自動記録機能を使わずに、直接、コードで記述することを強くおススメします。
なぜなら、自動記録機能は単純な作業しか記録できず、「ひとつのレコードの作業が終わったら次のレコードの作業をする」や「人間の操作の意図」までは読み取れないからです。また、不要な操作もすべて記録されてしまい品質的に大きな問題を抱える場合がほとんどです。
自動記録で完成したマクロ(プログラム)を作成者が可読できないまま、使ってしまうのは、リスクでしかありません。
※効率化のために部分的に記録する場合は別です。
マクロにしろ、プログラミングにしろ、自動化にチャレンジする場合には、プログラミングの学習をすることを前提にしたほうがよいでしょう。