皆さんは、“VBA”なるものを使用してWordやExcelなどのMicrosoft Office用のアプリケーションでプログラミングができることはご存じでしょうか?
プログラミングと聞くと高度な技術が必要なものに感じられますが、VBAは難易度が低く初心者でも始めやすいプログラミング言語となっています。
今回は、そんなVBAの機能やメリットについて紹介していきたいと思います。
※なお、本記事ではExcelに対応したExcel VBAをメインに紹介していますので、ご了承ください。
VBAの基礎知識
まずは、Excel VBAを含むVBAそのものの基礎知識を学んでいきましょう。
また、VBAの話題になると必ずと言ってもいいほど出てくるマクロとの違いも開設します。
VBAとは?
VBAとは、“Visual Basic for Applications”の略で、Microsoft Officeに含まれるアプリケーションソフト(Word、Excel、Access、PowerPointなど)で利用できるプログラミング言語です。
VBAを使用することで、ソフトウェアの動作の一部を変更したり、繰り返し行われる定型的な作業や複雑な処理を自動的に実行させたりすることができます。
対応するアプリケーションには開発環境と実行環境の両方が組み込まれており、使用を始めるにあたりOffice以外の特別なソフトウェアの用意やセッティングを必要としないため、誰でも手軽にプログラミングを始められます。
言語としての基本的な仕様は各アプリケーションで共通していますが、利用可能な処理や操作などがそれぞれ異なるため、“Excel VBA(Excel対応)”、“Access VBA(Access対応)”などと対応するアプリケーションによって呼び分けることもあります。
マクロとは?
マクロとは、アプリケーション上で行われる一連の操作や命令などを1つにまとめ、必要に応じ呼び出せるようにした機能を指すコンピュータ用語です。
繰り返し同じ作業を行う場合にマクロを実行すると、手動の操作が不要になり手間を省くことができます。 プログラミングの分野では、ソースコード(プログラミング言語で記述されたテキストのこと)の中で繰り返し使用される特定の記述を別の短い記述に自動的に置き換える機能のことを指します。
VBAとマクロの違い
前述の“VBAとは?”、“マクロとは?”を見ていただければわかりますが、プログラミング言語であるVBAとコンピュータ用語あるいは機能の一つであるマクロはまったく別の存在です。
“VBAはマクロを作成できるプログラミング言語”、“マクロはVBAで作成できる機能”という両者の特徴から同一視されてしまうケースがありますが、マクロはVBA以外でも作成でき、VBAもマクロ以外の用途に使えます。
VBAを使用するメリット
VBAのもっとも大きなメリットは業務の効率化です。
Excelをはじめとした業務でよく使用されるアプリケーションの操作を自動化できるため、多くの職種において負担の軽減やヒューマンエラーの予防に活躍します。
また、“すぐに始められる、比較的難易度の低いプログラミング言語”という特性から、プログラミングへの入門として役立つというメリットもあります。
Officeさえあればすぐに始められるため環境構築が不要となっており、その敷居の低さからネットに情報が多く、エンジニアやプログラマーのような専門職以外でも始めやすいです。
加えて、プログラミングというものはほとんどの言語において基本構造が似ているため、VBAで培ったプログラミングスキルは他のプログラミング言語を学習する時にも少なからず活躍します。
Excel VBAの機能
ソフトウェアの動作の一部変更や、定型的作業や複雑処理の自動化を可能にするExcel VBAには、さまざまな機能が備わっています。
Excelを使用する作業の自動化
VBAはExcelで使われることが多く、その際は膨大なデータを集計・分析する処理する機能により、ちょっとした作業はもちろん複雑な処理も自動化できます。
四則演算、ソート、検索、集計といったExcelの機能を利用して、計算、データを参照したグラフ作成、日次データをもとにした月次データ作成といった作業の自動化を行えます。 また、他のファイルからデータを取り込んで処理することも可能です。
定型ファイルの作成
VBAを使用することにより、自動でExcelシートからPDFへの出力を行えるようになります。
これにより、データを転記せずに帳票や報告書を作成できるようになる他、ヒューマンエラーも削減できます。
なお、定型ファイルの作成はWordやPowerPointで作成したファイルやPDF、CSV形式のファイルなどを取り込んで行うことも可能です。
サーバーログの解析
VBAは、ログファイルなどのCSV形式を含むテキストファイルを扱うことができます。 そのため、サーバーのログファイルを読み込み、Excelで解析することが可能です。 また、Microsoftのログ解析支援ツール「Microsoft Log Parser」を使うことで、CSV形式でのファイル出力やVBAでのレポート作成といった作業も行えます。
サイトクローリング
VBAはInternet ExplorerやMicrosoft Edgeでも使うことができます。
そのため、プログラムがインターネット上のリンクを辿ってWEBサイトを巡回し、WEBページ上の情報を複製・保存する“クローリング”が可能です。
また、自動収集したWEBのデータを使ってグラフやPDFレポート自動作成することもできます。
ユーザーフォームの作成
VBAでは、業務効率化に活用できるExcelやAccess用のユーザーフォームを作成できます。
ユーザーフォームとなるダイアログボックス作成の際には、データ入力用のセルをはじめ、リストボックス、コンボボックス、チェックボックスなどのコントロールを設置可能なので、操作しやすいフォームを作成できます。
MS Officeアプリケーション同士の連携
MS OfficeのVBAを使用できるアプリケーション同士は連携することができます。
この機能により、データをやり取りして処理することが可能なので、AccessのデータをもとにExcelのグラフを作成したり、ExcelのセルデータをWord文書に挿入してWordからシートを操作したりできます。
また、ExcelのグラフをPower Pointにコピー&ペーストするツールも作成できます。
【初心者向け】Excel VBAを書く方法
本項では、Excelに対応するExcel VBAを使用して、実際にマクロを作成しながら書き方を解説していきます。
VBEを起動する
まずは、VBAを書くためのエディタ“Visual Basic Editor(VBE)”をExcel上で起動できる状態にします。
ファイルタブから“オプション”を選択し、“リボンのユーザ設定”から“開発タブ”にチェックを入れて、Excelの画面に開発タブを追加します。
開発タブから“Visual Basic”のアイコンをクリックすることで、VBEが起動します。
キャプション:VBEを起動した状態
マクロ作成の準備を行う
VBEが起動したら、次はコード(プログラム)を記述する場所となる“標準モジュール”を追加します。
挿入タグの中にある標準モジュールを選択することで追加され、コードを書くことができるようになります。
キャプション:標準モジュールを起動した状態
マクロを作る
標準モジュールを追加してコードを書くことができるようになったら、VBAで処理を書いていきます。
まずは、プログラム(マクロ)を呼び出すための要素であるSubプロシージャを作成します。
“Sub マクロ”と記入してEnterキーを押すと、“Sub マクロ”の後ろにカッコが付き、下に“End Sub”という文字列が表示されます。
この時、“Sub マクロ()”と“End Sub”の間の部分にVBAのコードを書きこみ、マクロを作成します。
なお、“マクロ”の部分は別の単語や英語でも問題はありません。
キャプション:この状態でEnterキーを押すと……
キャプション:自動で“Sub マクロ”の後ろにカッコが付き、下に“End Sub”という文字列が表示されます。
今回はシート1のA1セルに今日の日付を入力するマクロを作ります。
打ち込むコードは下記の通りです。
Sub 今日の日付()
Worksheets("Sheet1").Range("A1").Value = "=TODAY()"
End Sub
キャプション:コードを入力した状態
マクロを実行する
マクロが完成したらさっそく実行してみましょう。
VBEならば、実行タブから“Sub/ユーザーフォームの実行”をクリックして作成したマクロ名を選び、実行ボタンを押すことで動作します。
Excelの画面ならば、開発タブから“マクロ”を選択して作成したマクロ名を選び、実行ボタンを押すことで動作します。
キャプション:Excelの画面では、開発タブから“マクロ”を選択することで行います。
キャプション:マクロの実行画面。VBEの画面で実行タブから“Sub/ユーザーフォームの実行”をクリックしても、この画面が表示されます。
VBAの資格
VBAの資格として、ExcelやAccessに搭載されているマクロ・VBAのスキルを認定する“VBAエキスパート”が存在します。
試験は、“Excel VBA ベーシック”、“Excel VBA スタンダード”、“Access VBA ベーシック”、“Access VBA スタンダード”の4科目です。
ベーシックレベルはビジネスで一般的に利用されるレベル、スタンダードレベルはITプロフェッショナルなどに求められるレベルとなっています。
試験に合格すると認定証が利用できるようになり、VBAエキスパートの正式ロゴを使用することも可能になります。
さらに、Excel VBAとAccess VBAのスタンダードレベル2科目を取得すると“VBAエキスパート スタンダードクラウン”の認定証が発行されます。
VBAの取得で収入は変わる?
VBAのスキルや資格は、直接的には収入に影響しません。
しかし、業務および作業効率の向上や就職・転職時の実力アピールなど、間接的な形で収入への影響を期待できます。
業務においては、人事・経理職なら給与計算や経費計算をはじめとしたExcel作業、営業、マーケティング職ならエクセルを使用した月次データ報告や売れ筋商品の分析、非IT系の技術者・開発者ならば製品などのデータ統計といった形で効率改善を図ることができます。
また、就職・転職時には、求人内容にVBAスキルを歓迎する旨が記述されている会社の面接で資格を所持していることなどをアピールできれば好印象を与えられるでしょう。
オススメのExcel VBA学習本
Excel VBAは活用できるシーンが多いことから学習本が多数出版されています。 本項では、オススメの数冊を紹介します。
『できる イラストで学ぶ 入社1年目からのExcel VBA』
VBAの文法・語彙・作文力を効率的に身に付けられる構成の書籍です。 基礎文法がイラスト付きでやさしく解説されている他、よく使用されるコードの書式や利用上の注意事項も詳しく書かれています。 なお、出版を記念して第1章が無料公開されています。 公開期間は無期限で、アプリのインストールや登録の手続きなども不要なので、気になった人は一度読んでみてはいかがでしょう?
『できる大事典 Excel VBA 2016/2013/2010/2007 対応』
Excel VBAの使い方を網羅した解説書で、VBAの具体的な使用例が300個以上掲載されています。 マクロ操作やプログラムの基礎がわかりやすく解説されている他、実践的なサンプルも収録されており、初心者にオススメの一冊となっています。 なお、サイズはA5判でページ数は880とちょっとした辞書のようなサイズですが、購入特典に検索しやすいPDF電子版も存在しているので持ち運びたい人でも購入しやすい点も魅力です。
『できるYouTuber式 Excel 現場の教科書』
Excelのコンテンツを発信している動画再生回数180万回越えのYouTuber・おさ(長内孝平)さんがビジネスの現場で学んだExcel仕事術をテキストと図解で解説する一冊です。 本書の一番の特徴は、各レッスンに記載されたQRコードから動画解説ページにアクセスすることで、本と動画の両方で理解を深められるという点です。 これにより、文字だけではイメージしづらい操作もしっかりと理解できます。
『VBAエキスパート公式テキスト』各種
VBAエキスパートには、各科目用の試験対策教材も用意されています。 模擬問題をはじめとした学習用データが収録されている他、基礎から体系的にスキルを習得することを目的としているため、実務でよく使われる機能に重点を置いた解説が行われています。 試験合格を目指す人だけでなく、VBAを学習したい人も手を出しやすい学習書です。
おすすめのVBA学習サイト
VBAは敷居の低さからネットに情報が多いという点は前述したとおりですが、資料以外にも学習サイトが存在しています。 学習サイトは、主にExcel VBAを取り扱ったものがメインとなっています。
ドットインストール
“ドットインストール”は、3分の動画を通してプログラミングを学べるサイトです。 本サイトには、Excel VBAについて学ぶ全19回のレッスン“Excel VBA入門”が用意されています。 必要となる知識や用語はもちろん変数型やIF文など、他のプログラミング言語でも用いる基礎知識まで解説されており、知識がほとんどない初心者にも心強い内容となっています。 なお、動画は無料ですが有料プレミアム会員になれば、文字起こしテキストやソースコードの閲覧も行えるようになります。
Office Pro
WordやExcelなどのMicrosoft Officeに含まれるアプリケーションソフトに関する知識を開設するサイト“Office Pro”には、“Excel VBA入門”という講座が用意されています。 詳細な部分まで丁寧な解説が行われている他、サンプルプログラムも用意されているので、実践しながらExcel VBAについて学ぶことができます。
moug(モーグ)
moug(モーグ)は、Microsoft OfficeとVBAを中心とした情報コミュニティサイトです。 サイト内の“Excel VBA ビギナーズ”というコーナーで初心者に向けた解説が行われています。 Office製品を中心としたテクニックや情報をユーザー同士で交換する“Q&A掲示板”、Excel VBAやAccess VBAなどのテクニックを集めたTips集である“即効テクニック”といったコンテンツがあるのもうれしいポイントです。
まとめ
VBAを取得すれば即座に収入アップ! とはいきませんが、プログラミングのキャリアにおける第一歩はもちろん、普段の業務でも役立つ要素があります。
これからプログラミングについて勉強していきたい人はもちろん、日々のPC業務を面倒に感じる人も一度勉強してみてはいかがでしょう?