Excelなどで業務の自動化・効率化をするには、プログラミング言語である「VBA」の知識が必要です。
VBAはもともと、Microsoftが開発したプログラミング言語「Visual Basic」の派生として誕生しました。Visual Basicよりは簡易化されているものの、VBAの習得にはプログラミングの勉強が欠かせません。
今回はVBAやマクロを始めたい方に向けて、VBAとはそもそも何なのかや基本的な文法、おすすめの勉強方法などを徹底解説します。
VBAとは?初心者向けの基本解説
VBAとは、Microsoft Office製品全般で使用できるプログラミング言語です。「Visual Basic for Applications」の頭文字を取った略称であり、「ブイビーエー」と読みます。
VBAは、Office製品の中でも特にExcelやAccessといった表計算・データベース管理アプリケーションのデータ処理を自動化させるために使用します。VBAでコードを記述することにより、データの集計・転記やドキュメント作成といった日常的な作業の効率化を図ることが可能です。
Excel・AccessといったOffice製品を保有している方であれば、誰でもVBAを利用できます。
マクロとVBAの関係性と違い
ExcelやAccessの自動化では「マクロ」という機能も使用します。マクロとVBAは同じ場面で使われることが多く、混同することも多い単語です。
そもそもマクロとは、アプリケーション内で行われる一連の操作手順やタスクを記録し、必要なときに再生させられる機能のことです。ExcelやAccessはマクロ機能を使用することで、操作手順の自動化が実現できます。
一方でVBAは、ExcelやAccessで使用するマクロを作成・実行するためのプログラミング言語のことです。
●マクロとVBAの関係
VBAは自動化を行うコードを作るための言語であり、マクロはVBAコードを動かすためのスクリプトです。関係性としては、アプリケーションの機能であるマクロの中で、VBAコードが動作している形となっています。
Excelなどの自動化を目的としたとき、実際に使用する機能はマクロです。VBAはあくまでもコード作成用のプログラミング言語であり、VBAのみで自動化が実現できるわけではありません。
なお、VBAコードを作成するための編集エディタは「VBE(Visual Basic Editor)」と呼ばれます。
●マクロとVBAの違い
マクロで行える自動化の方法には、VBAコードを使用しない「マクロの記録」があります。
マクロの記録は、アプリケーション内で行われたほとんどすべての操作を記録する機能です。単純な操作であれば簡単に自動化ができるメリットがあります。
しかし、マクロの記録はすべての操作を記録するため、複雑な手順の自動化には向きません。
対してVBAによる自動化では、VBAを使用したコードの記述によってマクロで再生したい処理を決められます。柔軟性が高く、カスタマイズが可能である点などがVBAのメリットです。
また、マクロの記録は初心者でも使えるものの、VBAにはプログラミング知識が必要であるという違いもあります。
VBAと他のプログラミング言語の組み合わせ
VBAは、作成するコードに処理の条件分岐などを含めることができ、データ分析処理に強い特徴があります。
さらに、ほかのプログラミング言語と組み合わせることで、データ分析処理をパワーアップすることが可能です。
VBAと組み合わせられる代表的なプログラミング言語を2つ紹介します。
●Pythonとの連携
Pythonは、汎用性が高いオープンソースのプログラミング言語です。「openpyxl」や「xlwings」といったPythonの自動化ライブラリと、VBAのコードを組み合わせると、幅広い範囲のタスクを自動化できます。
例を挙げると、Excelに入力済みのデータをPythonの自動化ライブラリで読み込み、グラフを自動作成する処理が可能です。Pythonは記述の柔軟性が高く、VBAと組み合わせることで高度なデータ分析も実現できます。
●JavaScriptとの連携
JavaScriptは、Webサイトやシステム開発で主に使われるプログラミング言語です。VBAで作成したコードを、JavaScriptで作成したWebアプリケーションと組み合わせると、特定のデータの表示や抽出をする処理が行えます。
抽出したデータをExcelファイルなどに書き出すようにすることで、リアルタイムのデータをOffice製品に組み込む処理も可能です。ECサイトのデータをリアルタイムに収集し、Excelでデータ管理・分析をするといった使い方ができます。
VBAの基本文法
VBAでマクロを実行するには、VBAの使い方を把握する必要があります。VBAはプログラミング言語であるため、基本文法やコーディングのルールを守ってコードを作成しましょう。
ここからは、VBAの使い方やコーディングする際の基本文法などを紹介します。
VBAエディタの開き方
マクロの作成・編集に必要なVBAエディタ(VBE)は、下記の流れで開きます。
●Excel(Excel2010以降)の場合
- リボン(ウィンドウ上部の枠)の「ファイル」をクリックする
- 「オプション」から「リボンのユーザー設定」をクリックする
- プルダウンで「メインタブ」を選び、「開発」にチェックを入れる
- リボンに追加された「開発」を選び、「Visual Basic」をクリックする
●Accessの場合
- リボンの「作成」をクリックする
- 「マクロとコード」グループの「Visual Basic」をクリックする
変数とデータ型
VBAで変数を使う場合は、下記のような形式で変数を宣言します。
上記の宣言は、以降の処理で「変数名」の部分に「1000」を代入します。
また、下記の形式で変数のデータ型を指定することも可能です。
データ型を使うと、変数で扱う値の種類や大きさを指定できます。
主なデータ型を4つ紹介します。
データ型の名称 | 扱える値の特徴 |
---|
Integer | -32768~32767の整数 |
String | 最大で約20億文字の文字列 |
Double | 小数点を含む桁数が非常に大きい数字 |
Variant | すべてのデータ型 |
これら以外にも、データ型には多くの種類が存在します。
制御構造
データの処理手順を決める制御構造は、
処理を順番に進める「順次」のほかに、「条件分岐」と「ループ」の2つがあります。
●条件分岐
条件に応じて処理を分岐させる構造です。代表的な構文には「If...Then...Else」(もし~であれば〜する)があります。
●ループ
処理を繰り返し実行する方法です。代表的な構文には「For...Next」(指定した回数だけ処理を繰り返す)や「Do...Loop」(一定の条件を満たす場合に処理を繰り返す)があります。
関数とサブルーチン
VBAでは、ユーザー自身が作成した関数である「ユーザー定義関数」を扱えます。
ユーザー定義関数の基本形は、Subプロシージャを使用して下記のように記述します。
関数のように、メインの処理(メインルーチン)から呼び出される別の処理は、サブルーチンと呼ばれるものです。
ユーザー定義関数を含め、サブルーチンを利用するときは、下記のようにCallステートメントで呼び出します。
オブジェクトとコレクション
ワークシートやセルといったExcelオブジェクトを指定する際は、次のように記述します。
Workbooks(“Book1.xlsm”).Worksheets(“Sheet1”).Range(“A1”).Select
|
上記は、ブック「Book1」のワークシート「Sheet1」にあるセル「A1」を指定するコードです。
「Workbooks」や「Worksheets」のように、同じ種類のオブジェクトをグループ化したものをコレクションと呼びます。
実際のデータ処理では複数のオブジェクトをまとめて扱うことが多いため、オブジェクトに対応したコレクションを把握しましょう。
コーディングルールとベストプラクティス
●変数の命名規則
変数名は、「変数が何を表すか」「変数にどのような値を格納するか」が視覚的に分かるように付けましょう。
また、重要な変数は読みやすさを重視し、重要ではない変数は簡素化を目指して命名します。
●コメントの活用
文の行頭に「’」を付けると、実行の対象とならないコメントを記述可能です。変数の内容や関数の処理などにコメントを記述すると、後で修正や確認をする際に役立つでしょう。
●エラーハンドリング
プログラム中のエラーを処理するには、On Errorステートメントを使用します。指定した行に処理をスキップする「On Error GoTo」や、処理を続行する「On Error Resume」を使い、エラーの適切な処理を行いましょう。
VBAがもたらす国際的キャリアの可能性
ExcelやAccessといったOffice製品は、日本企業はもちろん海外の企業でも広く使われています。VBAはOffice製品全般で使えるため、VBAのスキルは国際的なキャリアチャンスを拓くきっかけになり得るでしょう。
また、VBAは国際的な企業の業務効率化や、国際取引での通貨・税率計算ツールにも使用されているプログラミング言語です。VBAのスキルを持っていれば、勤務先企業の事業発展や自身の転職に伴って活躍の場が広がる可能性もあります。
VBAの勉強方法
VBAの勉強方法は、主に下記の3通りがあります。
- 書籍や動画を活用してコストをかけずに学ぶ
- 関連資格の取得を目指して勉強する
- VBAに関するコースのあるITスクールに通う
「書籍や動画を活用してコストをかけずに学ぶ」は、独学での勉強方法です。VBAを取り扱う書籍やWebページは多く、独学でもある程度の知識を学べます。
「関連資格の取得を目指して勉強する」は、資格勉強を通して勉強する方法です。目標を定めた勉強ができ、成功すると資格取得ができるメリットがあります。
「VBAに関するコースのあるITスクールに通う」は、スクールに通学する勉強方法です。講師の指導を受けながら、業務で活用できる実用的なVBAスキルを習得できます。
VBAを独学する難しさ
VBAの勉強方法には独学もあるものの、実際にはVBAを独学で学ぶことは簡単ではありません。インターネット上にはVBAに関する情報が膨大に存在しており、信頼できる情報を精査する難易度が高いためです。
また、独学の場合は基礎的な内容を学ばないまま応用の勉強を始める可能性があり、理解が進みにくいことがあります。
練習のためにVBAでマクロを作ったときにも、エラーやバグが発生しても間違っている部分が分からず、解決策をなかなか発見できないケースもあるでしょう。
VBAを学べるITスクールのメリット
VBAの勉強方法としては、専門講師のもとで体系的に学習が進められるITスクールの利用がおすすめです。
VBAを学べるITスクールのメリットを3つ紹介します。
●段階的に実践的な内容を学べる
ITスクールはプログラムで学ぶ順序が決まっていて、段階的に実践的な内容を学べるようになっています。VBAに初めて触れる方も、自分のレベルに合わせた内容で学習を進めてステップアップが図れます。
●専門の講師からフィードバックをもらえる
VBAを学べるITスクールには専門の講師が在籍していて、豊富な知識量で学習をサポートしてくれます。作成したコードのチェックをして、記述方法についてフィードバックをもらえる点がメリットです。
●同じ目標を持つ仲間と交流できる
ITスクールは、同じようにVBAの講座を受講する仲間と交流できる場でもあります。お互いに刺激を受けることができ、学習のモチベーションを維持しやすくなるでしょう。
VBAを学べるITスクールに通うステップ
VBAを学べるITスクールは、下記のポイントを押さえて選びましょう。
- 専門講師によるVBA講座があるか
- 通学タイプ(オンライン・通学)は自分に合っているか
- 受講料は予算内に収まるか
- 受講にかかる時間を確保できるか
ITスクールの選び方については、下記のページで詳しく解説しています。
▶ 転職・副業したい方におすすめ!ITスクールの選び方や注意点を解説
▶ 【これが結論】ITスクールの適切な通学タイプ(オンライン・通学)は性格で決めるべき!
通いたいITスクールの候補をいくつかピックアップしたあとは、無料カウンセリングや無料体験を受けてみるのも大切です。
初心者必見!VBAの勉強方法 まとめ
VBAは、Excel・Accessなどのデータ処理を自動化するマクロが作成できるプログラミング言語です。VBAは記述するコードによってマクロの処理内容を決められる柔軟性があり、他プログラミング言語と連携できる拡張性の高さもメリットとなっています。
VBAでマクロを作成するには、VBAの基本文法やルールについての理解が欠かせません。記事で紹介した内容以外にも、VBAにはさまざまな文法や守るべきルールがあり、マスターするには体系的な学習が必要となります。
VBAを詳しく知りたい、業務で使えるレベルで学びたい場合はITスクールへの通学がおすすめです。
マナビタイムでは「VBA」や「Excel」について学べるITスクール・コースを多数掲載しております。VBAスキルを高められる勉強方法をお探しの方は、ぜひマナビタイムで自分にぴったりのITスクール・コースを検索してみてください。