- 公開日:
- 更新日:
マクロとVBAとは?違いなどの説明
この記事では、マクロとVBAの違いについてご説明します。
どちらも作業の自動化をするために便利な機能ですが、それぞれがどんなものなのか正しく理解できているでしょうか?
以下では、マクロ実行ボタンを作成する方法やマクロを強制終了するショートカットキー等についてもご紹介していますので、参考にしてみて下さい。
Excelを使った日付選択のマクロを無料でダウンロード!
Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。
マクロとは?
マクロとは、「複数の操作手順をまとめて自動化できるようにする機能」を指します。

上の画像は、マクロで「顧客別の購入数」の表から「女性のみ」のデータを抽出するように設定した例です。
一度「女性のみのデータを抽出する」という作業をエクセルに設定すれば、顧客別の購入数の表に変更が合った場合でもまた「女性のみのデータを抽出する」という操作がボタン1つで出来ます。
このように、様々な操作をエクセルに記録させていつでも同じ操作ができるように設定できるシステムそのものがマクロになります。
VBAとは?

マクロ機能で記録した操作は、プログラミング言語に変換されてエクセルに書き込まれます。
このプログラミング言語が「VBA」です。
VBAは、マクロを記録するためのプログラミング言語になります。
上の画像は、マクロで「対象のデータから女性のデータのみ抽出する」という操作を自動記録した際に、エクセルに書き込まれたVBAのコードです。
マクロの自動記録で書き込まれる以外にも、自分でVBAでコードを組み複雑なマクロを設定することも出来ます。
マクロとVBAの違い
マクロとVBAは、「マクロが操作を自動記録するもの」で、「VBAが自分でコードを書いてプログラミングするもの」というような区別をされやすいですが、これは本来の意味とは異なります。
上記「マクロとは?」セクションと「VBAとは?」セクションでご説明したように、マクロは「操作を自動化する機能」で、VBAは「マクロを構成するプログラミング言語」を指します。
「VBAで書いたプログラムがマクロ」ということになります。
マクロを実行するボタンの作成
マクロ実行ボタンを作成する方法についてご説明します。
ボタンを作成できるようになると、マクロを実行するたびにダイアログボックスを開く必要がなくなるので大変便利です。
今回はあらかじめ「対象のデータから女性のデータのみを抽出する」というマクロが設定してあります。
マクロの設定方法やマクロの自動記録の使い方、開発タブの表示方法などについては、以下の記事をご参照ください。
Excelマクロの使い方入門(初心者向け)!作成〜保存方法まで

①【開発】タブ、②【挿入】、③【ボタン(フォーム コントロール)】の順に選択します。

マウスポインターが十字マークになったらボタンを描画できます。
「任意の場所」に【ドラッグ】して、ボタンを描画します。

描画が終わると、自動的に「マクロの登録」ダイアログボックスが表示されます。
①【ボタンに設定したいマクロ(例:女性のみ抽出)】を選択し、②【OK】ボタンを押します。

①「ボタン」の上で【右クリック】して、②【テキストの編集】を選択します。

ボタンが文字入力できる状態になるので、『任意のマクロ名(例:女性のみ抽出)』を入力します。

次に、ボタンの表示設定をします。
デフォルトの設定では、ボタンはセルと一緒に動くためセルがなくなるとボタンも消えてしまいます。
設定でボタンの表示をセルから独立させましょう。
①「ボタン」の上で【右クリック】して、②【コントロールの書式設定】を選択します。

「コントロールの書式設定」ダイアログボックスが表示されます。
①【プロパティ】タブ、②【セルに合わせて移動やサイズ変更をしない】の順に選択し、③【OK】ボタンを押します。

これで、ボタンを設定することが出来ました。
試しに、【ボタン】を押してマクロが実行されるかどうか確認します。

問題なく「女性のデータのみ」が抽出されました。
これで、マクロ実行ボタンを作成することが出来ました。
マクロを強制終了(停止)させるショートカットキー
エクセルマクロを実行中に、処理に時間がかかってしまったり無限ループしてしまったりした場合は強制終了しましょう。
エクセルマクロの処理を強制終了するショートカットキーは以下の3つです。
- Ctrl+Pause
- Ctrl+Break
- Esc