Excel

【Excel】エクセルでのマクロとVBAの違いは? 関数との違いも解説

当サイトでは記事内に広告を含みます。

この記事ではエクセルでの「マクロとVBAの違い」「マクロと関数との違い」について解説します。

マクロ、VBA、関数などは似ていると感じる人が多いですが、ざっくりと

・マクロ:一連の操作を自作し、自動化する機能

・VBA:マクロをどう動かすかを記録するための「言語」

・関数は「指定の処理を行い、その処理の結果としての『値を返す』」もの(合計を出したいのであればSUM関数など、指定のものを使用)

という意味と違いがあります。

以下でこれら「関数」「マクロ」「VBA」の違いの詳細をサンプルを用いて解説していきます。

 

エクセルでのマクロとVBAの違いを徹底解説!

上述のよう、マクロは「一連の操作を自作し、自動化する機能」を指すのに対し、VBAはこのマクロを動作・記録するための「言語」を指すのが違いです。

具体的にまずはマクロから見ていきます。

上の図は、コピーした「売上表」のシートを翌月用として使う前処理を行ったものです。

具体的には「表内のA・B・E列(入力する部分)を消す」→「カーソルをセルF2に異動」→「セルF2のデータ(ここでは6)を消す」の一連の作業を行うマクロを右上の「新規売上表作成」ボタンに登録しています。

このボタンを押すだけで一連の連続した作業が終了します。

実際にボタンを押下してみます。

マクロを登録したボタンを押したことで、前月分のデータが消えました。(C・D・F列はB列のデータがないときは空白にする式をあらかじめ入れてあるので同時に消えています)

録音の「音」が「エクセルでの操作」に変わったようなイメージで考えるとわかりやすいかもしれません。

これにより同じ操作を「間違いなく」「素早く」「何度でも」繰り返すことができるのがマクロのメリットです。

マクロの登録方法は、「表示」タブから「マクロ」→「マクロの記録」を押す→マクロ名を入力→保存先を決める→「OK」を押す→登録したい作業を行う→「マクロの終了」を押すだけです。

 

マクロとVBAの違いと意味

続いて、マクロとVBAの違いを確認するため、上のマクロの意味を掘り下げてみましょう。

上のボタン、なぜ押したら登録した作業が自動で処理されるのでしょうか。

次の図はこのボタンに登録したマクロの裏側です。

この画面はVBE(Visual Basic Editor)、マクロ機能で作成する手順を記述するときに使う「マクロ言語」が記された画面です。

「マクロの記録」で記録した操作は、裏で動いているVBEでコンピューターに分かるプログラミング言語であるマクロ言語に変換されています。

そのマクロ言語がVBA(Visual Basic for Applications)になります。

ちなみにVBEは「開発」タブからか、「Altキー」+「F11キー」で起動することができます。(開発タブは標準では表示されていないので、「ホーム」→「オプション」→「リボンのユーザー設定」で表示させておくとマクロ機能が使いやすくて便利です)

つまりマクロは「機能」で、VBAはマクロのどう動かすかを記録するための「言語」です。

VBEを使うと、VBAで直接プログラムのコードを書くことができます。

それによって、「マクロの記録」だけではできない

・「条件によって操作を変えるマクロ」

・「ある条件を満たすまで処理を行うマクロ」

・「他のプログラムやファイルと連携したマクロ」

・「ユーザーの入力や選択によって処理を変える『対話型』マクロ」などを作ることができます。

(↑対話型マクロの例:ユーザーの入力に応じた処理ができる)

 

エクセルでのマクロと関数の違いを徹底解説!

次に「マクロ」と「関数」の違いですが、マクロは「一連の操作を自作し、自動化する」機能であるのに対して、関数は「「指定の処理を行い、その処理の結果としての『値を返す』」もの(合計を出したいのであればSUM関数など、指定のものを使用)」ものになります。

単純に各列の合計を出したいのであれば、SUM「関数」を活用するわけです。一方で、あるシートの最終列を取得し、それを別シートの最終列の次の行にペーストする・・など複雑な処理をする場合は、所定の関数がないため、マクロを自作し自動化する・・といった具合です。

上の図のセルF5では、セルD5の値とセルをE5の値を掛け算した結果の『値』としての「15000」が表示されますね。

(ちなみにVBAでは「ユーザー定義関数」という、オリジナル関数を決めて作ることもできます。)

 

まとめ マクロとVBA、関数の違い

この記事では「マクロ」「VBA」「関数」の違いについて解説しました。

今まで分かっていたようで分からなかったそれぞれの違いを理解していただけたと思います。

エクセルを使いこなして決まった作業を登録することで、自分だけでなく周りのエクセルが苦手な人の作業もまとめて効率化していきましょう。