VBAとは?マクロとの違い・使い方を解説
目次[非表示]
- 1.VBAとは
- 2.マクロとは
- 3.VBAとマクロの違い
- 4.VBAを使用してできること・できないこと
- 4.1.VBAを使用してできること
- 4.2.VBAではできないこと
- 5.VBAの使い方
- 5.1.VBEを起動する
- 5.2.標準モジュールを挿入する
- 5.3.コードを入力する
- 5.4.プログラムを実行する
- 6.Excelマクロを使用してできること・できないこと
- 6.1.Excelマクロを使用してできること
- 6.2.Excelマクロではできないこと
- 7.Excelマクロ(マクロの記録)の使い方
- 7.1.開発タブを表示できるようにする
- 7.2.マクロの記録で手順を記録する
- 7.3.マクロを保存する
- 7.4.マクロを実行する
- 8.Excel VBAスキルアップならリンクアカデミーの企業研修
- 9.リンクアカデミーの研修導入事例
- 10.VBAに関するよくある質問
- 11.まとめ
現在のビジネスシーンにおいては、ExcelやPowerPointといったツールを使えるということは必要不可欠と言っていいでしょう。しかし、ExcelやPowerPointの機能を「使いこなせている」と自信を持って答えられる人はどの程度いるでしょうか。特に、マクロやVBAといった機能や言語まで使いこなせているという人は案外少ないのではないでしょうか。本記事では、業務効率を向上するVBAやマクロについて、それぞれの違いや使い方をご紹介します。
VBAとは
VBAとは、「Visual Basic for Applications」を略した言葉であり、ExcelやAccessなどの、Microsoft Officeに含まれるアプリケーションソフトの拡張機能、プログラミング言語です。ユーザーは簡易的なプログラムを記述することで、VBAを利用して複雑な処理を自動化することができます。
また、VBAと似ている言葉として、VBがあります。VBは、「Visual Basic」を略した言葉であり、こちらもMicrosoftが開発したプログラミング言語です。VBはWindows環境下での開発に活用されており、VBをもとにして作られたものがVBAです。
VBは開発環境を構築する必要があり、Visual Studioという開発ツールをインストールする必要があります。一方で、VBAはMicrosoft Officeのアプリケーション内で使用できるプログラミング言語であるため、Excelなどがインストールされていれば使用することができます。
マクロとは
マクロとは、Microsoft Officeのアプリケーションソフトの中で、あらかじめ手順を設定しておくことで、必要な時に自動的に操作を実行することができる機能のことを指します。マクロの中でも、Excelのマクロ機能を指して「マクロ」と言うことが多いため、「マクロ」と言えばExcelマクロのことであると認識されている方が多いでしょう。
Excelには関数やグラフ描画、テーブル作成機能などがありますが、マクロもそれと同様の機能であると言うことができます。また、マクロはプログラミングを組むことで操作を指定して実行することができますが、「マクロの記録」といった機能を用いてマクロを構築・実行することもできます。
マクロの記録とは、画面上で実際に行った操作をExcel内で記録しておき、必要な時に自動的に実行させることができる機能です。例えば、毎日行う作業においては、マクロを利用することでその作業工数を省くことが出来ます。マクロの記録を活用することで、プログラミング言語を覚えることなくExcelのマクロ機能を利用することができます。
VBAとマクロの違い
しばしばVBAとマクロは同じものであるといった認識をされていますが、厳密には両者は異なるものです。VBAがプログラミング言語であるのに対して、マクロは機能のことを指しています。Excelのマクロ機能を使用するために必要となるプログラミング言語が、VBAであるといった関係になっています。また、マクロを作成するためには、Microsoft Officeのアプリケーションごとに異なるプログラミング言語を使用する必要があります。
そして、「マクロの記録」の機能があれば複雑なVBAの構築は必要ないといったことが考えられますが、マクロの記録自体もVBAによってプログラミングが構築されています。VBAによるプログラミングがベースにあることで、ユーザーが自身で記述することなくマクロ機能を使うことができています。
加えて、マクロの記録で自動化できる操作には限界があります。複雑な処理や細かい操作を行うためには、マクロの記録ではなくVBAを用いてプログラミングを構築する必要があります。
VBAを使用してできること・できないこと
では、VBAではどのようなことができて、どのようなことができないのでしょうか。VBAでできることとできないことを把握することで、VBAを活用しやすくすることができます。ここでは、VBAを使用してできること・できないことをご紹介します。
VBAを使用してできること
Microsoft Officeのアプリケーション内で使用するプログラミング言語であるVBAですが、VBAを使用することで業務を自動化したり、簡単なものにしたりすることができます。VBAを使用してできることの例として、以下のようなものが挙げられます。
■データ集計を自動化する
VBAを使用することで、データ集計を自動化することができます。例えば、売上管理をExcelで行っている場合には、月ごとの売上や顧客別の売上、商品別の売上といった様々なデータを項目ごとに並び替えて集計することができます。
■メールを一括で送信する
VBAを使用することで、メールを一括で送信することもできます。あらかじめフォーマットが決まっている文章がある場合には、それを人の手で1回1回送信するのではなく、VBAでプログラムを構築することでメールの作成から送信までを一括で行うことができます。
■アプリケーション同士を連携させる
アプリケーション同士を連携させることも、VBAを使用することで可能となります。ExcelやPowerPointといったMicrosoft Officeのアプリケーション同士を連携させることで、管理しているデータや情報を自動的に授受することができます。
VBAではできないこと
様々な操作を自動的に実行することができるVBAですが、VBAでもできないことがあります。VBAでできないこととして、以下のようなものが挙げられます。
■膨大なデータ処理を必要とする作業
VBAでもできないこととして、膨大なデータ処理を必要とする作業が挙げられます。VBAを使用することで、自動的にデータを集計したり、帳票にデータを記入したりといったことができますが、その処理速度や処理能力には限界があります。そのため、数千〜数万といった量のデータを処理しようとすると、VBAでは対応しきれずに処理速度が大幅に低下してしまい、場合によってはフリーズしてしまうことがあります。
■Microsoft Officeのアプリケーション以外との連携
VBAでできないこととして、Microsoft Officeのアプリケーション以外との連携もあります。VBAはあくまでMicrosoft Officeのアプリケーション内で使用することができるプログラミング言語です。そのため、VBAで記述されたプログラミングを処理することができないアプリケーションと連携することはできません。
■アプリケーション開発
アプリケーション開発も、VBAではできないこととして挙げられます。VBAはExcelやPowerPointなどの機能を拡張するためのものであるため、新しいアプリケーションを開発するプログラミング言語ではありません。
VBAの使い方
では、実際にVBAを使うにはどのような手順が必要なのでしょうか。VBAを使用する際に主に必要となるステップについてご紹介します。
VBEを起動する
VBAでプログラミングを記述するためには、VBE(Visual Basic Editor)を起動する必要があります。VBEを起動するためには、メインタブで「開発」タブをクリックします。その後、「Visual Basic」をクリックすることで、VBEが別ウィンドウで起動します。
標準モジュールを挿入する
「標準モジュール」とは、VBAのコードを記述するための場所のようなものです。VBAでコードを記述するためには、この標準モジュールを挿入してそこに記述する必要があります。VBEの左側に表示されているシートを右クリックすることでメニューが開くので、その中の「挿入」から「標準モジュール」を選択します。
コードを入力する
標準モジュールを挿入できたら、その中にコードを入力します。コードを入力する際には、VBAのコード記述のルールに従って記述する必要があるため、記述のルールについて確認しておくようにしましょう。
プログラムを実行する
コードを入力した後には、実際にプログラムを実行します。ツールバーの中にある「実行」タブにカーソルを合わせることで、「SUB/ユーザーフォームの実行」や「マクロの実行」といった選択肢が出てきます。それを押すと、入力したコードに従ってマクロが実行されます。
Excelマクロを使用してできること・できないこと
では、マクロではどのようなことができて、どのようなことができないのでしょうか。マクロでできることとできないことを把握して、マクロを活用しやすくすることができます。ここでは、マクロを使用してできること・できないことをご紹介します。
Excelマクロを使用してできること
Excelマクロでは、VBAほどの複雑さや細かさの操作は実行できないものの、様々なことを自動的に実行することができます。特に、マクロの記録ではプログラミングを必要とせずに特定の作業をExcel内で記録しておき、必要な時に実行することができるため、大変便利です。Excelマクロを使用してできることとして、以下のようなものが挙げられます。
■位置を記録する
Excelマクロを使用することで、セルの位置を記録することができます。マクロの記録を開始した時には、その時に選択されているセルを記録しています。デフォルトでは「C3からE5に移動」といった絶対参照の方法で記録が行われますが、「上に2行、右に1列移動」といった相対参照の方法でも記録することができます。
■特定の位置で動作する処理を記録する
Excelマクロを使用することで、特定の位置で動作する処理を記録することができます。上記の絶対参照では、特定のセルで動作する処理を記録することができるため、「C3をコピーして、E5にペーストする」といった動作を自動的に実行することができます。
■定型的な作業を記録する
相対参照での動作を記録することで、特定のセルだけではない動作を自動化することができます。これを使用することで、一定の範囲のデータをもとにして、別シートに抽出するといった動作を実行することができます。
Excelマクロではできないこと
プログラミングを行う必要がなく、動作や処理を自動化することができるExcelマクロですが、Excelマクロで実行できることには限界があります。Excelマクロではできないこととしては、以下のようなものが挙げられます。
■ループする動作の記録
Excelマクロでできないこととして、ループする動作の記録が挙げられます。ここで、ループする動作とは、ある一定の条件が満たされるまで同じ動作を繰り返すことを指しています。マクロの記録では、ループする動作を記録することができないため、ループ処理を行いたい場合にはVBAでプログラミングを行う必要があります。
■条件の分岐が発生する処理
条件の分岐が発生する処理についても、Excelマクロでは処理することができません。マクロの記録では、画面上の操作をそのままExcel内で記録することになるため、何らかの条件分岐により自分で判断する必要がある動作は記録することができません。この場合も、VBAによるプログラム構築が必要となります。
■VBAではできないこと全般
VBAでできないことは、Excelマクロでも実行することができません。マクロの記録は、VBAをベースとして、プログラミングを用いることなく動作の記録や実行を行う機能です。そのため、VBAで不可能なこと全般はExcelマクロでも記録や実行を行うことができません。
Excelマクロ(マクロの記録)の使い方
では、実際にマクロを使うにはどのような手順が必要なのでしょうか。マクロを使用する際に主に必要となるステップについてご紹介します。
開発タブを表示できるようにする
マクロの記録を使用するためには、まずは「開発」タブが表示されている必要があります。実は平常の設定では、開発タブは表示されているわけではありません。開発タブでは、マクロの記録やVBAを選択することができます。まずは、「ファイル」から「オプション」を選択します。そして「リボンのユーザー設定」から右側の「開発」にチェックを入れてOKを選択します。
マクロの記録で手順を記録する
「開発」タブから「マクロの記録」をクリックします。マクロ名や保存先を入力するウィンドウが立ち上がるため、名前をつけて保存先を選択し、OKを選択します。そうするとマクロの記録がスタートするため、記録したい操作を画面上で実行します。操作が終わったら、「記録終了」をクリックします。
マクロを保存する
マクロを記録した後には、作成したファイルを保存します。「名前を付けて保存」を選択して、保存先を選択します。この際、「Excelマクロ有効ブック」として保存することで、マクロを有効にして保存することができます。
マクロを実行する
実際にマクロを実行する際には、「開発」タブの「マクロ」をクリックします。作成したマクロが並んだウィンドウが立ち上がるため、実行したマクロを選択して、実行をクリックします。
毎日行うような決まった業務において、マクロで作業の記録をすることで、その後の業務では記録したプログラムを実行するだけで完了してしまうため、大幅な時間短縮につながります。
Excel VBAスキルアップならリンクアカデミーの企業研修
VBAとは、マクロを実行させるためのプログラミング言語であり、マクロは、作業を自動化させる機能です。日々のデータ管理や資料の印刷、または会議で使用するグラフの作成まで、マクロを使用することで、定型作業を時間をかけずに行うことが出来ます。
昨今の働き方において、時間をかけることよりも時間内にどれだけの価値を生み出すことが出来るのかといった生産性が注目されるようになってきています。生産性の高さが市場から選ばれる人材の用件にもなってきている今日において、VBAを筆頭とした新しいスキルの取得、能力向上は効果的な動きなのではないでしょうか。
リンクアカデミーは「あなたのキャリアに、本気のパートナーを」をミッションに掲げて個人が「学び」を通じ、できる喜びを感じ、自らのキャリアを磨き上げられる場を目指しています。
そのために
・㈱アビバが提供してきたパソコンスキルの講座提供
・大栄教育システム㈱が提供してきた資格取得を支援する講座
・ディーンモルガン㈱が提供してきた「ロゼッタストーン・ラーニングセンター」のマンツーマン英会話レッスン
といったキャリアアップに関するサービスをフルラインナップで展開してきました。
この実績と経験を活かして、
・内定者・新入社員の育成
・生産性向上
・営業力強化
・DX推進
といった幅広い課題に対してもソリューションを提供しています。
リンクアカデミーの研修導入事例
・ネットワンシステムズ株式会社様
・東京建物株式会社様
・株式会社フロムエージャパン様
・株式会社トーコン様
VBAに関するよくある質問
Q1:VBAとは
A1:VBAとは、「Visual Basic for Applications」を略した言葉であり、ExcelやPowerPointなどの、Microsoft Officeに含まれるアプリケーションソフトの拡張機能、プログラミング言語です。ユーザーは簡易的なプログラムを記述することで、VBAを利用して複雑な処理を自動化することができます。
また、VBAと似ている言葉として、VBがあります。VBは、「Visual Basic」を略した言葉であり、こちらもMicrosoftが開発したプログラミング言語です。VBはWindows環境下での開発に活用されており、VBをもとにして作られたものがVBAです。
Q2:VBAでなにができるか
A2:VBAでできることとして、以下のようなものが挙げられます。
■データ集計を自動化する
VBAを使用することで、データ集計を自動化することができます。例えば、売上管理をExcelで行っている場合には、月ごとの売上や顧客別の売上、商品別の売上といった様々なデータを項目ごとに並び替えて集計することができます。
■メールを一括で送信する
VBAを使用することで、メールを一括で送信することもできます。あらかじめフォーマットが決まっている文章がある場合には、それを人の手で1回1回送信するのではなく、VBAでプログラムを構築することでメールの作成から送信までを一括で行うことができます。
■アプリケーション同士を連携させる
アプリケーション同士を連携させることも、VBAを使用することで可能となります。ExcelやPowerPointといったMicrosoft Officeのアプリケーション同士を連携させることで、管理しているデータや情報を自動的に授受することができます。
Q3:VBAとマクロの違いは
A3:VBAがプログラミング言語であるのに対して、マクロは機能のことを指しています。Excelのマクロ機能を使用するために必要となるプログラミング言語が、VBAであるといった関係になっています。また、マクロを作成するためには、Microsoft Officeのアプリケーションごとに異なるプログラミング言語を使用する必要があります。
まとめ
Microsoft Officeのアプリケーション内で操作を自動化したり、簡単にしたりといった処理を行うことができる機能やプログラミング言語として、マクロとVBAがあります。マクロやVBAを使用することで、データの処理や集計、アプリケーション同士の連携などを自動で行うことができるようになります。複雑すぎるデータの処理や、膨大な量のデータを伴う動作などは行うことはできませんが、マクロやVBAを活用することで業務を大幅に効率化することができます。