VBA

最終更新日: 2023.03.14 (公開: 2023.03.14)

VBAで作業を自動化!学習方法やVBAエキスパートについて解説

VBAで作業を自動化!学習方法やVBAエキスパートについて解説

本記事でVBAの基礎について、VBAとは何かを解説して実際にコードを書きながら詳しく説明します。VBAに関する書籍や資格も紹介しているので、ぜひ参考にしてください。

Excelは使ったことがあっても、より高度な事務処理ができるVBAについて詳しく知らない方もいるのではないでしょうか。本記事ではVBAの基礎について、実際にコードを書いてVBAを使いながら解説します。
さらにVBAを使うメリットや学習するのに役立つ書籍、資格についてもあわせて紹介しています。Excelを始めとしたOfficed製品を活用したい方はぜひ参考にしてください。

VBAとは何?

VBAとは何?

「VBA」は「Microsoft」のOffice製品向けのプログラミング言語です。「Excel」や「Word」で行う事務処理を、プログラムによって自動化できます。ここではVBAの特徴について解説したあと、VBAと混同されることがあるマクロやVBやVBEの違いについて解説します。

VBAの特徴

「VBA」の正式名称は「Visual Basic for Applications」と言います。「VBA」は「Basic」というプログラム言語をベースに、「Excel」や「Word」などのアプリケーションで(for Applications)、目で見てわかる(Visual)要素を加えたプログラム言語です。

たとえば「Excel」上に配置されたテキストボックスやボタンなどの目で見てわかる「GUI(グラフィカルユーザーインターフェース)」を制御できます。ほかにも同じ作業の繰り返しが必要な処理を行う際に「VBA」は有効で定型的な事務処理を自動化できるため、ビジネスでは多くの場面で利用されているのです。

マクロとの違い

「VBA」と「マクロ」の違いは、「言語」か「機能」かという点です。「VBA」はプログラム言語で、「マクロ」は「VBA」で書かれたプログラムを実行する機能を意味しています。

たとえば、「Excel上」の処理を自動化する仕組みを作るときに「マクロを組む」という言い方をすることがありますが、厳密には「VBAを組む」という表現が正しいかもしれません。しかし「VBA」と「マクロ」の違いを認識していれば、コミュニケーションで困ることはありません。混同しそうな場合は「VBAは言語」とだけ覚えることをおすすめします。

VBAとVBの違い

「VBA」と「VB」の違いは、アプリケーションで動くプログラミング言語であるかどうかです。「VB」は「Excel」や「Word」などのアプリケーションで動くことを前提としておらず「VB単体」で機能します。

「Excel」や「Word」などの「office」がインストールされている端末だからといって、「VB」が使えるわけではありません。「VB」を動かすためには、ほかの環境を用意する必要があります。

VBAとVBEの違い

「VBE」は「Visual Basic Editor」のことで、「VBA」の編集やデバッグなどを行う環境です。「VBA」をプログラミングするときは、「VBE上」にコードを書きます。

「VBE」のデバッグ機能を活用すると、「VBA」が想定通りの動きをしない場合もプログラムの処理の流れを逐次確認することが可能です。そのためプログラムのどこに問題があるのかを調査しやすくなります。開発の仕事でデバッグ機能はよく使われるので、使いこなせるようにしておくことをおすすめします。

VBAを使うと何ができる?

VBAを使うと何ができる?

ここからはさらに掘り下げて、「VBA」を活用してどのようなことが自動化できるのか具体的な作業例を紹介します。実用的な例が多いので、ぜひ実務にも取り入れてみてください。

データ処理を自動化

「VBA」は定型的なデータ処理の自動化が可能です。たとえば、勤怠管理と給料計算を「Excel」で行っている場合、従業員が多くなると処理するデータも多くなります。

「VBA」で適切なプログラムを組むことで、従業員の勤怠実績から残業時間を自動的に割り出し給料計算への反映も可能です。データの処理を自動化しておけば、人間の作業を大幅に減らせます。「VBA」によって人的な作業ミスをなくせるのです。

転記作業の自動化

たとえば、異なる部署で活用していたデータを、別の部署でも活用したいがデータを管理するファイルは各部署で別々に管理したいと仮定します。
このような場合に「VBA」で転記作業を自動化すると、異なるファイルへのデータの転記が簡単に行えるのです。さらにデータを転記したファイル内で別シートに転記することも可能なため、応用の幅は広がります。

業務で活用するファイルには重要な内容が含まれていることが多いため、「VBA」による転記を活用し必要な部署が必要なファイルを管理するとセキュリティ上もおすすめです。

レポート作成の自動化

「Word」で毎月所定のフォーマットにより業績をレポートで報告する必要があるとします。「Word」に、棒グラフや折れ線グラフのプロトタイプ(データが入っていないグラフの型)をレポートに埋め込んでおけば、「VBA」でその月の業績の数字を各グラフに反映させることが可能です。

その月の業績の数字を入力する表を用意しておいて、その表に入力された数字を「VBA」が読み込むようにすれば見た目も自然でしょう。

毎月グラフを1から作っているとかなりの時間を要しますが、「VBA」を活用することでレポート作成を効率化できます。

帳票作成の自動化

「VBA」を活用すると、帳票作成の自動化もレポート作成と同じ要領で実現できます。

帳票のデフォルト(白紙の型)をあらかじめ用意しておき、帳票に渡す数字などの変化のある内容は「VBA」で渡すようにプログラムを作成しましょう。そうすることで、適切なデータが入力された帳票の作成が自動化できます。

毎回帳票を新しく手作業で作成することに比べて「VBA」を活用すると、帳票作成の手間が軽減されるだけでなく人的ミスを削減が可能です。

メールの一括送信

「VBA」と「Outlook」を活用すると、メールの一括送信ができます。

具体的な方法は、あらかじめメール送信処理を行うプログラムを「VBA」で用意し、さらに宛先とCcとBccを入力する表を用意します。

続いて、宛先とCcとBccに任意のメールアドレスを入力したら、表に入力されたメールアドレスとメール送信処理を行うプログラムを紐づけましょう。

このように表に入力されたメールアドレスにメールが一括送信されるようなプログラムを「VBA」で実現できるのです。

入力作業ミスの対策

入力された内容に対して「VBA」で入力チェックを行ったり補完したりすることで、入力ミスを対策できます。

たとえば、メールアドレス形式の入力が求められる箇所に、違うデータが入力されたとします。このような場合、「VBA」で書式をチェックして「メールアドレスの形式に合った入力をしてください」といったメッセージボックスを出力することで正しい入力の促しが可能です。

誤った入力データをレポートや帳票に渡したりすると、予期せぬエラーの原因になります。そのため、誤った形式の入力データを受け付けない処理にすることで、正しい入力データのみで処理を進められるのです。

Webのデータ収集

「VBA」は「スクレイピング」という手法により、インターネット上のWebページから必要な情報を抽出して取得できます。

インターネット上には膨大な量のデータが存在するため、インターネットより取得したデータをレポートに反映すると、レポートクオリティのさらなる向上が可能です。

ただし、スクレイピングを行う際には、違法なデータを扱うことは決してしないように注意が必要でしょう。

Microsoft Officeアプリケーションとの連携

「Excel」や「Word」などの「Microsoft Officeアプリケーション」と連携できることは、「VBA」の大きなメリットです。
「MicrosoftOfficeアプリケーション」は今やさまざまな場面で使われています。「VBA」を活用すると、「MicrosoftOfficeアプリケーション」の使用に費やす多くの時間を削減可能です。

VBAを使うメリット

VBAを使うメリット

「VBA」を使い事務処理を自動化できると、具体的にはどのようなメリットがあるのでしょうか。ここでは、「VBA」を使うことで得られるメリットについて具体的に解説します。

作業工数が削減できる

事務作業の中には同じ作業を繰り返す定型的なものや、機械的に行えるものもあるでしょう。そのような作業を人間が行うと、作業が発生するたびに時間をかけて手作業で対応することになります。
「VBA」を活用することで、定型的な作業や機械的に行える作業の自動化が可能です。1度「VBA」で処理を作ってしまえばあとは手作業が必要ないため、効率的と言えるでしょう。自動化になった処理の分だけ人間の作業を減らすことができ、作業工数と人的ミスを削減できます。

開発や運用が低コストでできる

「VBA」は「Excel」や「Word」が使えれば開発を進められるので、特別な環境構築は不要です。「VBA」で開発をしようと思う以前からパソコンに「Excel」や「Word」が入っていることもあるので、その場合は追加費用無しで開発できます。
「VBA」は比較的コードが書きやすいプログラム言語であるため、短時間・低コストでプログラムの作成が可能です。開発後に処理を修正する場合も修正しやすいので、低コストで運用できます。

高精度の成果物を得られる

「VBA」で成果物を作る場合プログラムにより処理が行われるので、正確な結果が得られます。「VBA」を活用することにより、人的ミスのない高精度の成果物ができるのです。
たとえば、人が定型的な作業や機械的な作業を行う場合、繰り返すほどミスが発生する可能性も高くなります。しかし「VBA」でプログラムを組んでしまえば、繰り返しの処理の中でミスが発生することはなくなるので高精度の成果物を得られるのです。

作業の属人化を防ぐ

特定の担当者のみが作業を行うと、その担当者しか作業内容を把握していないケースが起こる可能性があります。そのため特定の担当者がいなくなってしまうと、同じ作業ができなくなるのです。

しかし、「VBA」を活用すれば誰でも実行できる環境を整えることができるので特定の人に仕事が依存する「属人化」を防げます。特定の担当者に依存しないことは、組織づくりの基本です。さらにVBAのプログラムを更新や改修をしてふたたび作業が属人化することのないよう、VBAのスキルや知識を引継ぎすることも重要といえます。

ExcelでVBAを活用する方法とは?

ExcelでVBAを活用する方法とは?

ExcelでVBAを活用するにはVBAの入力の仕方や実行の仕方を把握し、手順に沿ってVBAを活用する必要があります。ExcelでVBAを活用する手順を解説しますので、一緒にVBAを使ってみてください。

開発タブからVBEを開く

「Excel」で「VBA」を活用するには、まず開発タブから「VBE(Visual Basic Editor)」を開きましょう。「VBE」はメニューバーの開発タブから「Visual Basic」を押すと開きます。

development tab-vba

「VBE」は開発タブから開くのが簡単ですが、Alt+F11のショートカットキーでも開くことが可能です。
「VBE」を開くと以下のように表示されます。

vbe-page

「VBE」を開いた後は、「VBE」にどのような機能が存在するのか「VBE」内のメニューバーの中を一つひとつ見てください。
「VBE」上にプロジェクト、プロパティ、ウォッチという3つの窓が表示されていますが、まずは各窓がどのような状態になっているのかだけでも見ておくことをおすすめします。

標準モジュールを挿入する

標準モジュールを挿入するには、プロジェクトエクスプローラーのオブジェクト名を右クリックして挿入より標準モジュールを選択します。なお、挿入はメニューバーからも選べるので、メニューバーの挿入からも同様に標準モジュールの選択が可能です。

insert-Standardmodule

標準モジュールを選択すると、プロジェクトエクスプローラーに標準モジュールが表示されます。標準モジュールはオリジナルの処理を作るときに使いますので、標準モジュールに「VBA」をプログラミングしてみてください。

project-explorer

実際にコードを入力する

標準モジュールに「VBA」で次のコードを入力してみてください。

Sub ShowMsg()
   MsgBox "メッセージを表示します。"
End Sub

このコードは「プロシージャShowMsg」を作成し、「ShowMsg」の処理として “メッセージを表示します。”というメッセージボックスを表示するプログラムです。プロシージャは、処理の1つのまとまりをいいます。
まずはプログラミングの経験を積むため、実際にコードを書いてどのような動きをするのか確認してみてください。

マクロを実行する

いよいよ「VBA」をマクロで実行します。コードを書いたら、「VBE」が下図の状態になっています。緑の矢印であるSub/ユーザーフォームの実行ボタンを押してください。

run-subuserform

マクロのダイアログが表示されたら、実行を押してマクロを実行しましょう。

macrosdialog

コードにタイプミスがなければ、次のように”メッセージを表示します。”というメッセージボックスが表示されます。

message

メッセージボックスが表示されたら、メッセージの内容を任意の内容に変更して再度マクロを実行してください。そして、変更した内容のメッセージボックスが表示されることを確認しましょう。

これで「VBA」プログラミングのファーストステップは完了です。さらに勉強したい方のために、次は「VBA学習」におすすめの書籍を紹介します。

VBA学習におすすめの書籍

VBA学習におすすめの書籍

「VBA」の学習におすすめの書籍を、レベル別に紹介します。これから学ぶ方も、すでに「VBA」を学んだ中級以上の方もぜひ参考にしてください。自分のレベルより難しい書籍を選ぶと学習が非効率的になるので、レベルに合った書籍を選びましょう。

【初級】自分のペースでゆったり学ぶ Excel VBA [改訂2版]

textbook1

自分のペースでゆったり学ぶ Excel VBA [改訂2版]

本書籍は、くまがプログラムを習う過程を通して読者の方もプログラムを学習していく仕組みです。くまの作業を用いて読者に伝わりやすい表現で書かれており、初心者の方にも優しい内容になっています。

【初級】ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本[第2版]

textbook2

Excel VBAのプログラミングのツボとコツがゼッタイにわかる本[第2版]

本書籍は内容を読み進めるとともに、手を動かして「VBA」を学習できる内容になっています。アプリケーションの作成方法についても記載されており、初心者からでも一定の成果を得られる内容です。実際にアプリケーションを作成して学ぶことで、一定の「VBA」スキルを身につけられるでしょう。

基本的な内容もしっかり書かれているので、確実に理解しながら「VBA」の学習を進められます。

【中級】Excel VBA 逆引き辞典パーフェクト 第3版

textbook3

Excel VBA逆引き辞典パーフェクト 第3版

多くの用途から「ExcelVBA」のコードを逆引きできる書籍です。「VBA」を書いている中で、セルを特定する操作方法がわからない場合やファイルの特定の操作方法がわからない場合など、疑問がでてくることがあります。

コーディングする中で生じた疑問を解決できる「辞書」のような役割を果たす書籍です。サンプルコードも書かれているので、疑問の解決に役立ちます。

【中級】改訂第3版 Excel VBAポケットリファレンス

textbook4

改訂第3版 Excel VBAポケットリファレンス

本書籍は多くの事例の解決方法が書かれており、「VBA」の学習を進めるうえで手元においておくと便利な書籍です。

調べたい事例がない場合でも、本書籍に掲載されている自分が詳しくない事例について理解をしておくと、いざ実践で必要になったときにすぐに役立てられます。疑問があるときだけでなく、学習のたびに本書の各事例に目を通し、実践することをおすすめします。本書の各事例をスキルとして身につけられると、「VBA」の知識を増やすことが可能です。

【上級】ExcelVBA実践テク ユーザー・ハンドブック

textbook5

ExcelVBA実践テク ユーザー・ハンドブック

本書籍は「ExcelVBA」の実践的なテクニックが学べる上級者向けの内容で、サンプルファイルはダウンロードによる活用が可能です。

ダウンロードしたサンプルファイルは内容を見るだけでなく、コードを変更して変更内容が反映されているか確認してみたり、自分オリジナルの処理を追加してみたりすることをおすすめします。学んだことを実践する「インプットとアウトプット」を繰り返すことで、知識が身につきやすくなります。

【上級】Excel Hacks 第2版―プロが教える究極のテクニック100選

textbook6

Excel Hacks 第2版― プロが教える究極のテクニック140選

本書籍は、「VBA」上級者の方におすすめです。基本から1歩ずつ学ぶのではなく実務レベルの実践的なテクニックが掲載されているため、「VBA」の初級者にはやや難しい内容といえます。

「VBA」上級者の方にとっては、身につけたい「VBA」テクニックを学べるためおすすめです。テクニックが必要になってから読むのではなく、あらかじめ目を通しておくと、より効果的でしょう。

VBAのスキル習得には資格取得もおすすめ!

VBAのスキル習得には資格取得もおすすめ!

「VBA」の資格には、「VBAエキスパート」という資格があります。「VBAエキスパート」には4種類の資格が存在するので、自分に必要な資格の選択が可能です。資格取得のメリットだけではなくデメリットもあわせて紹介するので、参考にしてください。

vbaexpert-official

VBAエキスパート公式サイト

VBA資格の種類

「VBA」の資格には、「VBAエキスパート」という資格があります。
「VBAエキスパート」の資格は、以下の4つです。

  1. Excel VBA ベーシック
  2. Excel VBA スタンダード
  3. Access VBA ベーシック
  4. Access VBA スタンダード
Qualification-4pattern

各試験共に問題数は40問程です。合格基準はいずれの試験も650~800点(1,000点満点)で、問題の難易度によって変動します。

試験の種類 試験時間 受験料
Excel VBA ベーシック 50分 13,200円(税込)
Excel VBA スタンダード 50分 14,850円(税込)
Access VBA ベーシック 50分 13,200円(税込)
Access VBA スタンダード 60分 14,850円(税込)

資格取得のメリット

プログラミング未経験者が就職活動をする場合、プログラマーとしての職歴がないので客観的にプログラミング能力を証明できるものが必要になります。

そのときに資格を取得しておくと客観的な証明となり、就職活動を有利に進められる場合があるでしょう。ベーシック資格からひとつずつ勉強していけば、基本を固めながら「VBA」を勉強できます。

資格取得のデメリット

資格取得のデメリットは、必ずしも実践的なスキルが身につくわけではないことです。また、資格取得したからといって、将来の仕事が保証されるわけでもありません。

資格取得のための勉強のみをするのではなく、「VBA」でプログラミングをするスキルを身につけられないと、就職したときに戦力になれない可能性もあるでしょう。

試験料金も13,200円か14,850円と決して安くはないので、自己投資が無駄にならないよう学習し試験の結果を出すことが求められます。

VBAを学んで作業を自動化して効率を上げられる

VBAを学んで作業を自動化して効率を上げられる

「VBA」は「MicrosoftOffice」がパソコンにインストールされていれば、特別な環境を用意することなく使用可能です。「VBA」はメジャーなプログラミング言語でコードも書きやすく学習材料も多いので、初心者でも学習しやすい特徴があります。
定型的な事務処理が自動化されることで得られるメリットは多く、「VBA」のニーズはビジネスにおいて需要が高いです。エンジニアとして活躍したい方は、ぜひ「VBA」のスキルを身につけ作業効率を向上できる人材を目指してください。

アクセスランキング 人気のある記事をピックアップ!

    コードカキタイがオススメする記事!

    1. 子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      2024.01.26

      子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      #プログラミングスクール

    2. 【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      2022.01.06

      【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      #プログラミングスクール

    3. 【未経験でも転職可】30代におすすめプログラミングスクール8選!

      2024.01.26

      【未経験でも転職可】30代におすすめプログラミングスクール8選!

      #プログラミングスクール

    4. 初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      2024.01.26

      初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      #JAVA

    5. 忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      2024.01.26

      忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      #プログラミングスクール

    1. 【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      2022.01.06

      【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      #プログラミングスクール

    2. 【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      2024.01.26

      【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      #プログラミングスクール

    3. 【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    4. 【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    5. 【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      2024.01.26

      【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      #プログラミングスクール