「マクロとは?」「VBAとは?」「マクロとVBAの違い」と調べる方向けの記事となります。
Excelを自動化させるときにマクロやVBAという言葉を耳にすると思います。多くの方はマクロとVBAという言葉の意味を同じと捉えていますが、詳細を話すと実は異なった意味となります。
私もVBAを学ぶまでは、マクロとVBAは同じ意味だと理解していましたが、実際に使うようになると言葉の意味が違いますし、VBAを学んでいない人が使う言葉に違和感を感じる時もありました。例えば、上司から「ボタンを押すだけで、売上と利益が自動で算出されるVBAを作って!」と言われた場合は、私であれば心の中で違和感を感じますが、実際は意味が伝わればいいと思っています。これは正確にはVBAではなく「ボタンを押すだけで、売上と利益が自動で算出されるマクロを作って!」というのが正解です。
それではこのマクロとVBAの違いについてをわかりやすく説明していきます。
マクロとは?
マクロとは、普段行っているExcelの作業を自動化したり、実行するだけで何度でも同じ操作を行うことができる便利な機能です。
エクセルを使っていると毎日同じ操作をしていたりすることがあります。それを手動で行うと意外に手間だったりしますし、1ヶ月で換算するとかなりの時間や工数を使っている場合があります。その何気なく行っている手動の作業を自動化できると良いと思わないでしょうか。
マクロはVBAと呼ばれるログラミング言語でできています。そのため、「マクロ=VBA」と勘違いしやすく、その2つの違いをわかっていない場合が多いです。
ではVBAについてもしっかりと理解しておきましょう。
VBAとは?
VBAとはVisual Basic for Applicationsの略称で、Excelを自動化させたりできるプログラミング言語です。
[box class=”yellow_box” title=”プログラミング言語とは”]コンピュータ言語の内コンピュータプログラムを記述するための形式言語。[/box]
つまりVBAは、エクセル(正確にはエクセルだけなく、オフィスアプリで利用)のプログラムを記述するための形式言語ということになりますね。
そのためVBAができるだけで立派はプログラマーなんです!そしてエンジニアなんですね!
よくプログラミング言語いうと、「PHP・Python・JavaScript・C・Java」などを聞きますが、非エンジニアの方からすると最もプログラミング言語はVBAです。なぜなら普段からExcelは1日1回必ず開くと言われているぐらい仕事をする上では欠かせないツールになっています。そんなExcelをプログラミングできれば、確実に日々の業務は楽になりますし、作業効率を大幅に上げることができます。
もし非エンジニアの方がプログラミングを学ぶとしたら、私はVBAを最もオススメしています。
[aside]VBAの詳細
VBAとはMicrosoft社がOffice用に開発したマクロスクリプトの1種です。そのためMicrosoft社にはVisual BasicというWindowsの汎用プログラミング言語もありますが、VBAはある程度機能を制御したVBと位置づけです。
[/aside]
VBAを身近に導入するメリット
私は普段はマーケティングをメインとして活動していますが、マーケターは分析をすることがとても大事です。そのためにはレポートを作ったりする必要があるのですが、Excelでレポートを作る人が非常に多いためVBAを活用することで毎日の作業がたったワンクリックだけで済んだりします。
ちなみに私はVBAではなくてGAS(Google Apps Script)を用いてワンクリックもせずにレポートが出来上がるようにプログラミングしています。そんなことができるのかと思うかもしれませんが、GASというのはGoogleスプレッドシートを自動化させるプログラミング言語で、ExcelのVBAと同じと考えてください。
しかしGASはクラウド上で作動することもあり、Google AnakyticsのAPIを用いて連携をすることで、勝手にGoogle Anakyticsから数値を取得して、Googleスプレッドシートに記述できます。そしてレポートのフォーマットをGASでプログラミングすれば自動で完成します。また毎日〇〇時に作動するような時間トリガーもGASのUIで簡単に設定できるので、それを使用することで1つも触らずに自動レポートの完成です。
今回は私の使っているGASではなくVBAなのですが、VBAも同じように自動化はできるので、普段の業務をまず自動化して、プログラミングの凄さを理解するためにもVBAからプログラミングを始めることをオススメしています。
マクロとVBAの違い
「マクロとは?」「VBAとは?」について説明していきましたが、まだピンと来ていない方もいるかと思いますので、マクロとVBAの違いをわかりやすく説明していきます。
一旦話がそれてしまいましたので、おさらいをしておきましょう。
- マクロ:Excelの操作を自動化するための指示書
- VBA:Excelを自動化させるためのプログラミング言語
もし私が「ボタンを押すだけで、売上と利益が自動で算出されるマクロを作って!」というのを部下に伝える時に、「VBA」と「マクロ」という2つの単語を使って伝える場合は以下のようにいいます。
「ボタンを押すだけで、売上と利益が自動で算出されるマクロをVBAで記述して作って!」
これでマクロとVBAの違いを理解できましたか?
つまりマクロという操作の指示書をVBAというエクセルのプログラミング言語で記述してということなんです。
ではもっとわかりやすく説明をしていきます。
あなたが外資系の会社で働いている場合、英語で話をしたり、プレゼン資料を作ったりする場面に出くわします。
その時に上司から「今度入社する新入社員のドナルド・トランプさんにわかるように英語で、出勤・退勤の仕方の説明資料を作成して!」と言われた場合、「マクロ=出勤・退勤の仕方の説明資料」、「VBA=英語」となります。
つまりVBAは単なる言語で、マクロがその言語で書かれた命令や指示ということです。
これでスッキリしたかと思います。
Excelのマクロ記録
Excelにはマクロ記録という機能があります。これはマクロ記録といったボタンを押した後に、自動化させたい普段の業務をいつも通りに行うことで勝手にVBAでマクロを作ってくれるものになります。
これを使えばVBAを理解していなくてもマクロを作ることができますが、マクロ記録ではやりづらいものだったり、実際に動かしたら思っていた動作をしない場合もあります。またエラーも発生したりすることがあるため、VBAを理解しておくことでマクロの記録ではできないものが可能となります。
しかしマクロの記録は使い方によってはVBAを勉強する上でとても役立つものになります。
一旦普段の業務をマクロの記録を使って自動でマクロを作成した上で、VBE(Visual Basic Editor)を使うことで、マクロの記録はどんなプログラミングを記述したかをみてください。
だって自分のしたい動作をVBAではこのように記述すればいいのかという見本になるため、それを元に勉強していくことで、自分の普段の業務に直結する内容となり、学習スピードが格段に上がります。
私も最初はこのようなやり方で自分の普段の業務を自動化しよう!という目的で学習しました。その途中で、マクロの記録では思った通りに動かない場面に出くわしたことで、それを調べて自分で修正するということを繰り返すうちに自然とVBAやGASを習得しました。
GoogleのVBA( Google Apps Script:GAS)
Googleが提供しているOfficeアプリケーションに 「Googleドキュメント・Googleスプレッドシート・Googleスライド」などがあります。これらの処理を自動化するためにGoogle Apps Script(略してGAS)という JavaScript 互換のプログラミング言語が用意されています。 互換のプログラミング言語が用意されています利用互換のプログラミング言語が用意されています利用用途はVBAと同じと考えて下さい。
これまでGoogle Apps ScriptにはJavaで実装したJavaScript処理系のRihnoが使われていましたが、2020年にnode.jsと同じv8処理型が採用されました。これによって ES6以降のモダンなJavaScriptが利用できるようになりました。
スクリプトエディターはスプレッドシートなど各アプリケーション、ファイルから起動することができます。この点もVBAに似ています。
GASは人気の高いJavaScriptに準拠した書き方ができ、さらにスプレッドシート以外にも、GmailやGoogleドライブにも利用できます。また全て無料で使えるということで近年爆発的に人気となっています。
GASを使うことで、TwiiterのBotを作ることができますし、外部APIを使うことで、毎朝7時に今日の天気予報をコミュニケーションチャットツールのSlackに自動で流すということもできます。
GASは使い方次第では色々なことができますしVBAよりも使い勝手がいいです。
マクロとは?VBAとの違いをわかりやすく説明のまとめ
「マクロとは?」「VBAとは?」「マクロとVBAの違い」と調べる方向けにわかりやすく説明しました。
マクロとはExcelの操作を自動化するための指示書で、VBAはExcelを自動化させるためのプログラミング言語でした。つまり、VBAという言語でマクロという指示書を書くというのが正しい理解ですね。
これでエンジニアの第一歩ともいえるマクロとVBAの違いを理解したので、今後はVBAとマクロの単語の意味を間違わずに使ってください。
コメント