VBAとマクロの違いは?機能と言語で整理

スポンサーリンク

マクロは操作を自動化する「機能」で、VBAはその中身を書くための「言語」です。同じものとして語られがちですが、役割はきれいに分かれています。

Excelの効率化を調べ始めると、この2つの言葉が入り混じって出てきます。「マクロの記録」を一度試したあとで、VBAまで覚えないとダメなのかと迷う人は多い。用語がぼんやりしたままだと、検索してもほしい情報にたどり着けません。

ここでは2つの関係を整理したうえで、開発タブからVBE(Visual Basic Editor)を開いて中身を見る手順まで書きます。作ったマクロが動かないときに見る保存形式と設定も、最後にまとめました。

スポンサーリンク

マクロとVBAの違いは「機能」と「言語」

マクロは、Excelの操作を自動化する機能そのものです。

一方でVBAは、Visual Basic for Applications の略になる。マクロで何をするのか、その処理の中身を書くための言語です。ボタンを押すと動く仕組みがマクロ、動く内容を書いた文章がVBA、という関係になります。

だから「マクロを実行する」と「VBAを書く」は、別の行為です。上下の関係でもありません。役割が違うだけ。

とはいえ、解説サイトや職場の会話では両方が混ざって使われます。「マクロを書く」と言う人もいれば、「VBAを動かす」と言う人もいる。どちらも間違いというより、言い方のクセです。まずは機能と言語という線引きを頭に置いておくと、読む情報がぶれなくなります。

👉 関連:C言語・C++・C#の違いをやさしく解説

スポンサーリンク

「マクロの記録」でVBAコードが自動で作られる

2つがつながっているのが分かるのが「マクロの記録」です。これは、ボタンを押している間のExcel操作をVBAに書き換えてくれる機能になる。

記録を開始してからセルに文字を入れたり、色を塗ったり、並べ替えたりする。「記録終了」を押した時点で、そこまでの操作がまるごとコードになります。つまり、記録で作ったものの正体はVBAです。自分で1文字も打っていなくても、中身はちゃんと言語で書かれています。

  • 記録したマクロには「Sub マクロ1()」のような名前が先頭につく
  • 処理の終わりは「End Sub」で閉じられる
  • この形は、手で書いたVBAとまったく同じ書き方になる

最初のつまずきは、記録だけで全部が完結すると思い込むところです。記録は入口として便利ですが、できることには範囲があります。

開発タブを表示してVBEでコードを見る手順

  1. 「ファイル」→「オプション」→「リボンのユーザー設定」を開き、右側の「開発」にチェックを入れてOKを押す
  2. 「開発」タブ→「マクロの記録」をクリックし、マクロ名を決めて「OK」で記録を始める
  3. 自動化したい操作を、いつもどおりの順番でやる
  4. 「開発」タブの「記録終了」を押す
  5. 「開発」タブ→「Visual Basic」でVBEを開き、左側の「標準モジュール」の中を見る

手順は5つだけです。慣れれば2〜3分もかかりません。VBEを開くと、さっきの操作がずらっと文字になって並んでいます。自分がやったことと見比べると、どの行が何をしているのか意外と読めます。

個人的には、この「記録して中身を見る」を1回やるのがいちばん早いと思っています。マクロ=機能、VBA=言語という説明が、手を動かした感覚とくっつくからです。

記録で足りない範囲と、VBAを書く範囲

たとえば、毎朝コピーしたデータに罫線を引いて、決まった順で並べ替える。この作業は毎回同じ手順なので、記録だけで再現できます。

ところが「金額が1万円を超えた行だけ色を変える」となると話が変わる。件数が日によって違う場合や、別のファイルを開いて中身を取ってくる場合も同じです。条件で処理を分ける、決まった回数だけ繰り返す。こういう動きは、VBAで書かないと作れません。

おすすめの進め方は、まず記録でベースを作ることです。そのあとVBEで開き、必要な行だけ書き換える。ゼロから全部書くより、ずっとラクになります。

そもそもVBAは、Excelの操作を言葉に置き換えたものです。並べ替えやフィルターを手で使えない状態でコードだけ読んでも、意味がつかめません。基本操作を先に押さえておいたほうが、結果として早く進みます。

マクロが動かないときの保存形式とセキュリティ設定

せっかく作ったのに動かない、というときは、たいてい2か所です。1つ目は保存形式になる。ふつうの「.xlsx」で保存すると、コードだけが消えます。保存時に「マクロ有効ブック(.xlsm)」を選んでください。

2つ目は設定です。「ファイル」→「オプション」→「トラストセンター」→「トラストセンターの設定」→「マクロの設定」の順に進むと、今の状態が確認できます。ここが「すべてのマクロを無効にする」になっていると、何をしても動きません。

ファイルを開いた直後に、黄色い帯で「コンテンツの有効化」が出ることもあります。これを押さないと、マクロは止まったままです。押せば、そのファイルはふつうに動くようになる。

用語そのものをきちんと確認したいときは、Microsoft Learn の Office VBA の基礎知識が分かりやすいです。VBAが何をする言語なのか、公式の説明として読めます。

スポンサーリンク

まとめ

言葉の混乱は、機能と言語という区切りを1回入れるだけで解けます。

  • 結論:マクロは自動化の機能、VBAはその中身を書く言語で、上下の関係ではなく役割の違いです
  • 次にやること:「開発」タブを表示して「マクロの記録」を一度試し、VBEで生成されたコードを開く
  • 次にやること:条件分岐や繰り返しが要る作業だけ、記録したVBAを書き換えて広げる
  • 覚えておくこと:保存は .xlsm、開いたら「コンテンツの有効化」。この2つを外すと動かない

「マクロの記録」で作った中身をVBEで一度見ておくと、マクロとVBAの線引きが手を動かしたまま頭に入ります。

スポンサーリンク
pocketlinehatebuimagegalleryaudiovideocategorytagchatquotegoogleplusfacebookinstagramtwitterrsssearchenvelopeheartstaruserclosesearch-plushomeclockupdateeditshare-squarechevron-leftchevron-rightleafexclamation-trianglecalendarcommentthumb-tacklinknaviconasideangle-double-upangle-double-downangle-upangle-downstar-halfstatus
タイトルとURLをコピーしました