VBAを使ってExcelを効率化!できることと使い方を解説!

ExcelのVBAを学ぶことで、Excelを自動化するためのExcelマクロを最大限に活用することが可能です。VBAを使えば、Excelを使う業務を効率的に進めることができます。

この記事では、VBAの基本知識から、VBAを使ってできることや実際の使い方についてわかりやすく解説します。ぜひ参考にしてください。

VBAとは?

VBAは「Visual Basic for Application」の略称であり、Microsoft Office製品に備わっている拡張機能です。マイクロソフト社のプログラミング言語であるVisual BasicをOffice製品でも利用できるようにしたもので、Office製品上で簡単なプログラム(コード)を書いて処理を自動化させることができます。

特にVBAはExcelで利用されることが多く、使い方次第でさまざまな業務の効率化が実現可能です。Excelにおける処理の自動化にはマクロが存在しますが、マクロも内部的にはVBAによって制御されています。

VBAとは

マクロについて詳しく知りたい方は、「エクセルマクロを使ってできることとは?作業効率を挙げる使い方を紹介!」もご覧ください。

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

VBAを使うメリット

Excelの処理を自動化する場合には、まずマクロの利用を考えるでしょう。自動的にマクロを作成する「マクロの記録」機能を使えば、プログラムを書くことなく自動化が実現できます。しかし、この機能では複雑な処理は実現できません。そこで用いられるものがVBAです。VBAには、以下のようなメリットがあります。

初心者でも習得しやすい

VBAはプログラムのコードを記述しますが、初心者でも比較的扱いやすく、Office製品にははじめから備わっている機能であるため、特別な環境設定も不要です。

VBAを利用する際には、まずはマクロの記録機能で大まかな作業の流れを記録し、その後VBAを使って詳細にカスタマイズする、といった使い方ができることから、初心者でも学びやすい言語となっています。

動作を理解しやすい

VBAはマクロの記録の延長として利用できることから、実行結果を見ながらコードが作成できます。そのため、一般的なプログラミング言語よりも、コードの動作を直感的に理解しやすい点も特徴です。

業務の効率化・人的ミスの削減が期待できる

Excel内の処理だけでなく、WordやAccessなどのOffice製品同士と連携させることもできるので、業務の効率化と併せて人的ミスの削減も期待できます。

業務効率化ができる

 

ExcelでVBAを使うとできること

ExcelでVBAを使うとさまざまな自動化が実現できます。ここでは、具体的な自動化の活用事例を4つ紹介しますので一つずつ見ていきましょう。

データ処理の自動化

VBAを使えば、四則演算や検索・集計を自動化させることができます。膨大なデータを集計し、分析する場合に、一つ一つ手入力する手間が省けるため、大幅な効率化が実現できるでしょう。

例えば、売上情報や在庫情報などをExcelで管理し、項目別にデータを自動的に並べ替えたり、計算した結果をまとめて表示したりできます。VBAの処理を一度実行するだけで実現できるため、月末にまとめてデータを処理することも可能です。

レポートやグラフ作成の自動化

Excelで請求書や見積書などを作成している場合、PDFに出力することもあるでしょう。出力する数が多くなってくると作業に手間がかかりますが、VBAを使って日付などの入力を自動化し、PDFとして出力することも可能です。

また、データをもとにグラフを自動作成したり、特定のデータ範囲に色を付けたりすることも簡単に実現できます。例えば、従業員の勤怠状況をグラフ化し、稼働状況をレポート化することも自動化できます。

グラフ作成

Officeソフトと連携した作業の自動化

VBAはExcelで利用されることが多いですが、VBA自体はOffice製品であれば利用可能です。そのため、ExcelとWordやAccess、PowerPointなどを連携させることもできます。

例えば、プレゼン用のデータ資料としてExcelでグラフを作成し、そのグラフをPowerPointで利用する、といった使い方ができます。その他にも、ExcelとWordを連携して差し込み印刷をしたり、Excel上でメール分を作成し、Outlookで一斉送信したりするような使い方も可能です。

データの自動収集

VBAを使うことでスクレイピングも実現できます。スクレイピングとは、Webページから必要な情報を抜き出して収集する技術です。例えば、複数のニュースサイトから特定の文言を含むニュースを抜き出したり、株価情報を定期的かつ自動的に収集したりできます。

ExcelのVBAでスクレイピングを実行すれば、収集したデータをそのままExcel上で集計することも可能です。データを自動収集し、集計・分析まで簡単に行える点は、VBAならではの特徴といえるでしょう。

注意点として、スクレイピングを行なう際には対象のWebサイトの利用規約をしっかりと確認する必要があります。スクレイピングは場合によってはWebサイトに多大な負荷をかける可能性があるため、利用する際には細心の注意をはらいましょう。

 

VBAに向いていない作業とは

VBAは汎用性が高く、あらゆる業務の自動化に利用できます。しかし、VBAにも向いていない作業があるため、ここでその例をご紹介します。VBAに向いていない作業としては、主に次のようなものが挙げられます。

データ量が多すぎるもの

ExcelでVBAを利用する場合、処理できるデータ量はExcelで処理可能なデータ量に限られます。Excelのワークシートの最大容量は1,048,576行×16,384列であり、容量を超えるデータは処理できません。

また、データ量が多くなるほど処理は重くなり、時間がかかるようになってしまいます。大量のデータを処理する際には、大量データ操作に最適化されたデータベースを活用することが推奨されます。Office製品であればAccess、その他にはMySQLやPostgreSQLなどのさまざまなデータベース製品があるため、そちらを利用したほうがよいでしょう。

システム、アプリケーションの開発

VBAはあくまでもOffice製品の機能を拡張するためのものです。VBA以外で動作するシステムやアプリケーションの開発はできません。VBAが得意とすることはExcelなどのOffice製品内における作業の自動化や効率化です。

システムやアプリケーションの開発がしたい場合には、JavaやPythonなどのプログラミング言語を習得する必要があります。

システム開発のイメージ

Web情報を中心に取り扱う場合

VBAを使うことでスクレイピング(データを抽出して加工すること)は実現できますが、Webアプリケーションの開発などのWeb情報を中心に取り扱う場合には、VBAは向いていません。

Web上で動作するアプリケーションなどを開発したり、Web情報を中心に取り扱ったりする場合には、PythonやRuby、PHPなどのプログラミング言語を習得する必要があります。

 

【Excel VBA入門】マクロを使ってみよう

VBAについて理解できたところで、実際にExcelでVBAを使ってみましょう。VBAを作成するためのエディターの起動方法から、作成・実行するまでの一連の手順を画像つきで解説します。ここで紹介する手順では、Microsoft Office 2019を利用しています。

エディター(VBE)を起動する

VBAはエディターであるVBE(Visual Basic Editor)からコードを記述します。VBEを使うためには、はじめにマクロを利用できるようにしなければなりません。次の手順に従い、マクロを有効化してVBEを起動してください。

1. Excelを起動し、「ファイル」タブを選択

2. 「その他」→「オプション」を選択

3. Excelのオプションで「リボンのユーザー設定」を選択し、画面右の「開発」にチェックを入れてOKボタンをクリック

4. Excelのリボンに「開発」タブが表示されていることを確認

5. 「開発」タブから「Visual Basic」を選択

6. VBEが立ち上がることを確認

マクロを作成する

Excelでマクロを作成していない状態だと、コードを記述するための「標準モジュール」が作成されていません。標準モジュールを作成してコードを記述するためには、次の手順を行ってください。

1. 対象のワークブックを右クリックし、「挿入」→「標準モジュール」を選択

2. 標準モジュールが作成されたことを確認

VBAのコードはこのモジュール内に記述していきます。コードを記述する際の基本形は次の通りです。

「Sub 関数名() ~ End Sub」の間に実際の処理を記述します。「Option Explicit」は変数を宣言しないと使えないことを定義する言葉です。これを入力することで、プログラムのミスに気付きやすくなりますので、覚えておくとよいでしょう。

マクロの記録

手打ちで一つ一つ入力することも手ですが、「マクロの記録」機能を使って大枠を作成した上で、コードの記述を行うことがおすすめです。その手順についても紹介します。

1. Excel上で「マクロの記録」を選択し、マクロ名を入力してからOKボタンをクリック

2. Excelシート上で操作を行った後、「記録の終了」をクリック

3. VBEに新たにモジュールが作成され、マクロがVBAのコードとして記述される

こちらの方法なら、Excel上の操作をコード化する際のイメージもつかみやすいため、おすすめです。

マクロを実行する

マクロを実行する方法は主に3つあります。ここでは、例として購買日に基づいた購入金額の合計を算出するマクロを作成し、そちらを使って解説を進めます。

  • VBEから実行する方法

作成したVBAのコードを表示した状態で、画面上部の三角マークをクリックすると実行できます。

実行した結果、条件に基づいて合計金額が自動的に入力されました。

  • マクロを選択して実行する方法

Excel上からマクロを直接指定して実行する方法です。

1. Excelの「開発」タブから「マクロ」を選択

2. 実行したいマクロを選択し、「実行」ボタンをクリック

マクロが実行され、条件に基づいて合計金額が入力されました。

  • ボタンから実行する方法

作成したマクロを他の人に実行してもらいたいときには、ボタンをシート上に作成すると使い勝手がよくなります。

1. Excelで「開発」タブを選択し、「挿入」-「ボタン(フォームコントロール)」を選択

2. ボタンを配置したい場所でドラッグ&ドロップを行なうと、「マクロの登録」画面が表示されるため、実行したいマクロを選択

3. 作成されたボタンを右クリックし、「テキストの編集」で任意の文字を入力

4.ボタンをクリックするたびにマクロが実行される

最後に、マクロを含むExcelファイルを保存する際には、「Excel マクロ有効ブック(*.xlsm)」形式で保存することを覚えておきましょう。

 

VBAはMicrosoft Office製品に含まれる拡張機能であり、処理を自動化するマクロの機能を最大限に利用できる機能です。VBAを活用すれば、データ処理の自動化やレポート・グラフの自動化、Officeソフトとの連携、データの自動収集など、さまざまな自動化が実現できます。

ただし、VBAはあくまでもOffice製品の拡張機能であり、システムやアプリケーションの開発などには向いていないことは覚えておいてください。この記事では、VBAの使い方も紹介しましたので、この機会にVBAを活用して、業務の効率化を実現させましょう。