発注ラウンジは、システム開発の発注に必要な様々なノウハウや発注ナビで実際に開発された発注者様のインタビューなど、発注担当者様のための情報発信サイトです。

VBAとは?Excelでマクロを作成するための基礎知識と便利な作業自動化

VBAとは、Microsoftが提供するアプリケーションで使用できるプログラミング言語です。
ExcelやWordのファイルでよく使われているので、「マクロ」という形で触れたことがある人も多いでしょう。
VBAはMS Officeに付属されており、ローカル環境で使用できるため、初めてのプログラミング言語としてもおすすめです。
今回は、VBAの基礎知識やマクロとの違い、習得するメリットなど、VBAについてわかりやすくご紹介します。

VBA1-min

目次

 

VBAの基礎知識

VBAは、「Visual Basic for Applications」の略で、MicrosoftがMS Officeの拡張機能として提供しているプログラミング言語です。プログラミング言語としては、Visual Basicと同等の機能を持っている本格的なものです。

Excelでの業務に使われていることが多いため、VBAはExcelの機能というイメージがありますが、MS Officeに標準搭載されているのでWord、PowerPoint、Access、Outlook、Internet Explorer、Microsoft Edgeなどにも実装されています。VBA を使えば、MS Officeの機能を拡張して、より効率的に業務をこなすことが可能です。Microsoftのライセンスを取得すれば、Windows版のAutoCADやMicroStation V8でも使用できます。

VBAは、自分が作成したファイルで動作させることを想定したローカル環境向けの言語です。そのため、開発環境のインストールなどは不要ですが、MS Officeの拡張機能なので、単体での動作はできません。

 

VBAとマクロの違い

VBAとマクロは同じものだと誤解されることもありますが、両者は異なります。正しく理解するため、2つの違いをご紹介します。

●マクロとは?

マクロとは、本来「コンピュータの処理を自動化する技術」の総称で、Microsoft社の用語ではありません。しかし、現在ではMS Office上で処理を自動化するための機能の名称として知られています。
MS Officeでは、リボンに表示された開発タブ(デフォルトでは表示されません)に「マクロ」とあり、その中にマクロ機能やVBAのコマンドがまとめられています。それが、マクロとVBAが混同されがちな理由です。

●VBAとマクロの使い分け

VBAは、マクロを作成するためのプログラミング言語です。ユーザーがExcelでマクロを作成すると、Excelの内部でプログラミング言語であるVBAに変換されて保存されます。つまり、VBAはマクロを作成するためのプログラミング言語の一種です。
しかし、VBAとマクロはまったく同じものではありません。マクロはあくまでも手順を記録し、実行するための機能です。VBAは、マクロを保存してアプリケーションに正確に伝えるためのプログラミング言語です。マクロで行う処理はVBAで保存されていますが、マクロは処理を記録・編集するだけでなく、それを実行したり、セキュリティチェックを行ったりする機能も含まれています。

●間違いやすいVBAの解釈

<VBAとVB>

「VB(Visual Basic)」は、VBAの基になっているプログラミング言語で、VBをMicrosoft社のアプリケーション用にしたものがVBAです。VBは単体で動作できますが、環境設定が必要なため費用がかかります。
一方、VBAはVBと比べると機能に多少の制限があるものの、MS Officeさえあればすぐに使うことができます。そのため、初心者にはVBよりも、VBAのほうがおすすめです。

<VBAとVBE>

VBAでコードを手書きしたり、編集したりするには、「VBE(Visual Basic Editor)」を利用します。VBEは、コードを手書きしてマクロを作成・編集するためのアプリケーションで、MS Officeでは開発タブから操作できます。
しかし、VBEでコードを手書きすることだけがVBAでのプログラミングではありません。マクロの作成・保存でも、VBAのプログラミングを行えます。

 

VBAのイメージと習得のメリット

初心者にとって、VBAの理解はやや難しい面もあります。まずは、ざっくりとしたVBAの機能をイメージしながら、理解を深めていきましょう。

●VBAのイメージ

VBAは、日本語変換システムに定型文や単語を登録しておくようなイメージです。繰り返し使う処理やよく使用する作業を、簡単な名前を付けて登録しておくことで、いつでも呼び出して使えるようにします。
Excel VBAの場合、Excel上で行う操作を記録します。例えば、毎月の経費の精算やデータをまとめた月次報告書の処理など、毎月使う操作を覚えさせておくことで、業務を効率良く済ませることができます。

●VBA習得のメリット

繰り返し行う作業をVBAで自動化しておくことで、業務や作業を効率化できます。毎日、毎週、毎月必ず行う業務や、手順が複雑な処理などは、VBAでの自動化に向いています。

また、動作を記録させることでMS Officeをカスタマイズでき、自作のアプリケーションのように使うことも可能です。ExcelだけでなくWordやAccessと連携させたり、入力フォームを作成してデータ入力のミスを防いだりもできます。複雑な処理を行うファイルでも手作業による人為的ミスが減少でき、自分の操作しやすいツールに変えられます。

 

VBAでできる主な機能

VBAには、多くの機能や活用方法があります。ここでは業務用の処理を中心にVBAの主な機能をご紹介します。

●Excelデータの計算、並べ替え、書式の変更

VBAの代表的な機能は、Excelで膨大なデータを集計・分析する処理です。単純な四則演算やソート、検索、集計など、Excelの機能を利用して帳票を自動的に作成したり、ほかのExcelファイルからデータを取り込んで処理したりもできます。

●定型ファイルの作成

Excelだけでなく、WordやPowerPointで作成したファイル、PDFやCSV形式のファイルなどを取り込んで、帳票や報告書を作成できます。データを転記する手間がかからず、そのまま取り込めるため、ミスもなくなります。

●サーバーログを利用したログ解析

VBAでサーバーのログファイル(テキストファイル)を読み込み、Excelで解析できます。Microsoft社のログ解析支援ツール「Microsoft Log Parser」を使用し、結果をCSV形式のファイルで出力、VBAでレポートを作成するという一連の作業が行えます。

●サイトクローリング

VBAは、同じMS OfficeのInternet ExplorerやMicrosoft Edgeでも使うことができます。Internet ExplorerやMicrosoft EdgeでWebサイトにアクセスし、データをダウンロードすることで、サイトのクローリングができます。ダウンロードしたデータを、VBAで分析することも可能です。

●ユーザーインターフェースの作成

VBAでExcelやAccess用のダイアログボックス(ユーザーフォーム)を作成できます。作成するダイアログボックスには、データを入力するセルだけでなく、リストボックスやコンボボックス、チェックボックスなどのコントロールも設置でき、カスタマイズされた操作しやすいツールを作ることができます。データベースに自動入力することで、データ入力が簡単になり、効率アップにつながります。

●MS Officeアプリケーション同士の連携

MS OfficeのVBAを使用できるアプリケーション同士を連携させてデータをやり取りし、処理することができます。例えば、Accessからデータを読み込みExcelのグラフを作成する、ExcelのセルデータをWord文書に挿入してWordからシートを操作する、Excel上でPowerPointのスライドショーを再生するといったことが可能です。

 

VBAに慣れるには、VBAを作成すること

VBAを使うのに、特別な開発環境は必要ありません。
MS Officeがベースのため、普段業務に使用しているMS Officeだけですぐに使い始めることができます。
解説しているWebページや関連する書籍もたくさん出ているため、初心者にとって習得しやすいプログラミング言語といえるでしょう。
しかし、他人の作成したマクロやVBAには、ウィルスなど悪意のあるプログラムが含まれている危険性があります。
マクロを含んだファイルを開こうとすると警告文が表示されるのはそのためです。
VBAを学習する際は、セキュリティ設定やウィルス対策ソフトを使ってウィルスの混入を防ぐための対策を行いましょう。

 img02

 

発注先選びにお困りの方はこちら

データベース構築など『システム開発』が得意な会社を探す

システム開発の発注先を「専門スタッフ」に相談する

関連する記事

PAGETOP