【エクセル】マクロとVBAの違いについて
2023.05.04 /

本記事ではMicrosoftのエクセルにおける、マクロとVBAの違いについて詳しく解説していきます。
仕事でエクセルを利用していると、エクセルのマクロを使用して業務の効率化を図ることが多いです。このMicrosoftのオフィス製品(エクセルやワードなど)で使用できる「マクロ」と「VBA」を「マクロ=VBA」と考えている人が多いです。
実際にはマクロとVBAは大きく異なる用語です。特にVBAについては理解を深めることで、エクセルの自動化において様々なことを実現できるようになります。
本記事を通して、マクロとVBAの違いについて理解を深めてください。
ここではMicrosoft 365による最新のエクセルを使用しています。
Microsoft 365とはMicrosoft社が提供しているOfficeアプリケーション(Outlook、Word、Excel、SharePoint、PowerPointなど)やサービスを利用できるサブスクリプション(月額課金制)のクラウドサービスです

Microsoft365とは:どのようなサービスかわかりやすく解説
2024.06.25 記事を追記および修正いたしました
マクロ
マクロとは
マクロとはコンピューターやアプリケーションの操作を自動化する機能です。日々繰り返し行う作業や複雑な手順をマクロにして自動化することで、大幅に作業時間と労力を節約できます。
例えば複数のエクセルからデータの集計や、種類へのデータの自動転記、データの並び替えなど様々な操作をマクロにできます。
このマクロは後述する「VBA」というプログラミング言語で作られます。
エクセルには「マクロの記録」というVBAを知らない人でもプログラミングなしでマクロを作成できる便利な機能が備わっています。
マクロを初めて利用する人はまず「マクロの記録」という機能から勉強します。「マクロの記録」を利用することで作業を記録し、一度記録した作業はボタン一つで再現することができます。
初めて「マクロの記録」でマクロを作成したときは、あまりに簡単にマクロを作成できて驚いたものです
マクロのメリット
マクロを利用することによるメリットは以下のようなものが考えられます。
- 日々の繰り返し作業の自動化
- 正確に指定した作業を実行する
- 作業時間と労力を大幅に短縮
仕事では同じ作業を繰り返し行う業務が多くあります。それらをマクロを組んで自動化することで作業時間と労力を短縮することができます。
またマクロで組んだプログラムは異なる操作をすることはまずないため、手動で行うのと比べてミスが大幅に減ります。
マクロのセキュリティリスク
マクロは非常に便利なツールですが、悪意のある攻撃者に利用されることが多いです。
不正なマクロが含まれたエクセルを不特定多数にメール送信し、エクセルを開いてマクロが実行されると不正な操作を実行されます。
マクロによるセキュリティ上のリスクは以下の通りです。
- ウイルスの感染
- データの盗難、外部への不正送信
- データの破壊、暗号化
マクロには上記のようなセキュリティ上のリスクがあることを頭に入れておき、不審なマクロは実行しないように心掛けましょう。
近年ではなりすましメールに不正なマクロ付きエクセルを送信する攻撃も多いです。なしすましメールについては以下記事をご参照ください。

【メールなりすまし】偽装された送信元(差出人)メールアドレス:仕組みと対策
開発タブの表示
エクセルの開発タブには「マクロの記録」といったマクロの作成、編集、実行、VBAエディターの起動など開発者向けの高度な機能が利用できるタブです。
この「開発タブ」はデフォルトでは非表示となっているため、マクロによる自動化を行いたい場合はまず開発タブを表示する必要があります。
エクセルで開発タブを表示する方法は以下の通りです。
- エクセルを開き、画面左上の「ファイル」をクリックする
- 左ペインから「オプション」を選択する
- 表示したExcelのオプション画面の左ペインから「リボンのユーザー設定」をクリック<右ペインからメインタブ内にある「開発」にチェック<「OK」をクリックする



上記の操作により「開発」タブが追加されます。

マクロの記録の実行方法
エクセルの開発タブから「マクロの記録」機能が利用できます。マクロの記録はユーザーの操作を記録してその操作を自動的に実行するマクロを生成する機能です。
マクロの記録は開発者ではない一般のユーザーも簡単に利用できるため、日々の業務を自動化するために多くの方が使用しています。
マクロの記録は表示された「開発」タブをクリックすると次図のように表示されます。

「マクロの記録」を使ってマクロを作成したい場合、まず「マクロの記録」ボタンをクリックし、表示される画面にマクロ名や保存先を指定します。

その後記録したい操作をエクセル上で行い、操作が終了したら「記録終了」ボタンをクリックします。

これにより一連の操作がマクロとして保存されます。保存したマクロを実行したい場合は開発タブにある「マクロ」ボタンをクリックします。

現在登録されているマクロが表示されますので、実行したいマクロを選択して「実行」ボタンを押せばマクロが動き出します。

マクロが含むエクセルは通常の拡張子「xlsx」では保存できません。マクロ付きエクセルは「Excelマクロ有効ブック(*.xlsm)」として保存しましょう。

マクロ付きエクセルは拡張子「xls」でも保存できますがお勧めしません。詳しくは以下記事をご参照ください。

【エクセル】拡張子xlsをxlsxに変更すべき理由:違いとマクロ実行の危険性
また作成したマクロ付きエクセルを他の人に配布したり、他の人が作成したマクロを利用する際に「マクロの実行がブロックされました」と表示されマクロが実行できないことがあります。この問題の対処法に関しては以下記事を参考にしてください。

【エクセル】「マクロの実行がブロックされました」:マクロが実行できない問題の解決
VBA
VBAとは
VBAはVisual Basic for Applicationの略称で、ExcelやWord、AccessといったMicrosoftが開発したオフィス製品用のプログラミング言語で、「VB(Vissual Basic)」のアプリケーション版と考えてください。
エクセルではVBAでマクロを組むことでエクセルの操作を自動化したり、複雑な作業も効率的に実行できるようになります。
前述した「マクロの記録」でもマクロを作成することができましたが、VBAを使うことでより複雑なマクロを組むことができるということです。
マクロを作成する手段の一つとしてVBAがあり、VBAでマクロを組むと「マクロの記録」とは大きく異なり、様々な操作を自動化することができる
今まで手動で数時間もかかっていた作業を数分で終わらせられるようになった、なんてことはマクロの世界ではよくあります。これほどマクロを使うか使わないかで作業効率は変わってくるのです。
マクロとVBAの違いとは
マクロとVBAはどちらもエクセルの操作を自動化するために使用されるという点では同じです。しかしそれぞれ役割や機能に大きな違いがあります。
マクロとは操作を自動化する機能そのものを表します。そしてVBAはオフィス製品のマクロを作成するためのプログラミング言語です。
つまりエクセルの操作を自動化しているマクロ機能はVBAというプログラミング言語で作成されているということです。
マクロは操作を自動化する機能、VBAはマクロを作成するプログラミング言語と覚えておきましょう。
まとめ
本記事「【エクセル】マクロとVBAの違いについて」はいかがでしたか。
エクセルを業務で使っていれば、マクロとVBAは使用頻度が多い単語です。マクロとVBAについて違いを明確にして、正しく使えるようにしてください。
エクセルには様々な仕事に便利な機能が備わっています。以下エクセルのまとめ記事では仕事に便利な機能を紹介しています。ぜひご覧いただき、ご自身の仕事に役立つ機能を見つけてください。

【エクセル】機能一覧:仕事で便利な機能や設定をまとめて紹介