VBAとは
VBA(Visual Basic for Applications)とは、WordやExcel、PowerPoint、AccessといったMicrosoft Office製品に標準搭載されているVisual Basicをベースにしたプログラミング開発環境です。
VBAを活用することで、複雑な手順の操作を自動化したり、大量のデータを高速に処理したりできます。特にExcelやAccessのような数値データを扱うアプリケーションでは、VBAを導入することで非常に業務を効率化できます。ちょっとしたプログラミングに留まらず、Office製品を利用した本格的なシステム開発にもVBAは用いられています。
マクロとの違い
VBAと同様のことができる機能としてマクロがあります。マクロとは定型的な作業を記録して自動で実行させるための機能のことです。例えばExcelの場合、マクロ記録を開始して一定の操作を実行し、マクロを終了させると、その一定の操作がマクロとして記録されます。記録されたマクロは必要なときに再生させることが可能です。
しかしながら、記録できる操作や内容に制限があります。しかしVBAを利用すれば、マクロのような機能をプログラミングで制御できるため、操作や内容に制限がありませんし、実行条件なども細かく制御可能です。
関連記事:VBAとマクロの違いとは?できることを知ってExcel効率化
VBEとの違い
VBEはVBAのコードを記述するためのエディタです。たとえばExcelでVBAのコードを書きたい場合、ExcelからVBEを立ち上げて、そこにVBAを書いていく流れです。VBEに書いたコードは、VBEの機能から実行できます。
VBとの違い
VBとVBAは概ね同じものです。VBを特定のアプリケーション用に変換して作ったものがVBAです。VBはVB用の開発環境が必要ですが、VBAはExcelなどVBAが使えるアプリケーションがあればそのままプログラミングができます。
VBAの将来性を4つのポイントから検証
VBAの将来性について以下4つのポイントから検証していきます。
-
・機能性・学習難易度
・求人状況
・年収
1. VBAの機能性
VBAはOffice製品に特化したプログラミング言語なので、用途としては限定的です。ただしOffice製品は使用頻度が高く、またVBAで自動化できる処理は日常の業務を大きく利便化するケースも多いです。特に事務作業においては、VBAの機能性は高いと言えます。
2. VBAの学習難易度
VBAの学習難易度は低めです。Excelなどのソフトで使用するので環境構築が不要、言語仕様がわかりやすい、書籍などの学習環境が充実している、といった状況だからです。初めてのプログラミング学習に選ぶ言語としてもありでしょう。
3. VBAエンジニアの求人状況
2023年7月の時点で、レバテックキャリアのVBA求人は436件です。案件数的にはそれなりに多い印象かもしれませんが、この数字はVBA単体で募集している求人とは限りません。VBAを含む複数の言語ができる人の求人も含まれます。そのため、VBAの単体スキルでエンジニアとして活躍するのは厳しいでしょう。
4. VBAエンジニアの年収
VBAエンジニアの平均年収は、データの出所によって異なります。概ね、500万円~600万円程度と考えられます。年収の水準としては、他のプログラミング言語と変わりません。しかしVBAの単体スキルで働いているエンジニアは少ないため、VBAの平均年収というよりはVBAも扱っているエンジニアの平均年収というイメージになります。
VBAに将来性があるといわれる理由
VBAに将来性があるといわれる理由として、以下が挙げられます。
-
・VBAを習熟している人が少ないため・簡単にシステム開発ができるため
・Officeを導入している企業が多いため
・VBAエキスパートによりスキルを証明できるため
それぞれ解説していきます。
VBAを習熟している人が少ないため
VBAに習熟している人は少ないです。VBAは事務作業の自動化などには役立ちますが、エンジニアはより大規模な開発やWeb開発、スマホアプリ開発で使用する言語を選ぶ傾向があるからです。結果的に、VBAは利便性が高いわりには習熟している人が少ないということになっています。VBAも扱えると、エンジニアにとっては役立つスキルとなるでしょう。
簡単にシステム開発ができるため
VBAは簡単にシステム開発できて、簡単に事務処理を自動化できます。現状は簡易的な事務処理の自動化ツールの需要も伸びているため、VBAにも需要があります。エンジニアはもちろん、エンジニア以外で事務処理が必要な人が学習するケースも増えていくでしょう。
Officeを導入している企業が多いため
VBAはOffice製品で使える言語です。そして、Office製品を導入している企業は多いです。VBAが扱えると多くの企業で導入しているOffice製品を便利にできるということなので、多くの企業で重宝されます。
VBAエキスパートによりスキルを証明できるため
VBAには、VBAエキスパートというオデッセイコミュニケーションズが運営している有名な資格があります。VBAエキスパートを取得することで、VBAのスキルを客観的に証明できます。企業からの評価アップにもつながるでしょう。
VBAには将来性がないといわれる理由
VBAは利便性が高く習得もしやすい言語ですが、将来性がないと言われることもあります。それには以下のような理由があります。
-
・大量のデータを処理するのには不向きなため・用途が限られているため
・事実上、長年アップデートされていないため
・ブラウザベースのサービスが普及してきているため
それぞれ解説していきます。
大量のデータを処理するのには不向きなため
Office製品は便利ですが扱えるデータ量などには限度があります。そのため、VBAで処理できるデータにも限度があります。大量データを扱うシステムを構築する場合、大量データ処理に向いている言語を使った方が良いです。
用途が限られているため
VBAはOffice製品で使用する言語なので、用途が限られています。Office製品の用途は事務処理などなので、VBAの用途も同様です。たとえば、AI開発、Web開発、大規模システム開発、スマホアプリ開発などにVBAを使用するのは困難です。
事実上、長年アップデートされていないため
Excelがアップデートされれば、VBAも一部アップデートされます。しかしVBAが大幅アップデートされるわけではなく、またExcelのアップデートもそれほど頻繁に行われるものではありません。結果的に、VBAは長年本格的なアップデートが行われていません。
ブラウザベースのサービスが普及してきているため
Office製品は個々の端末にインストールして使用するものですが、最近はブラウザベースのサービスが普及してきています。たとえば、Googleスプレッドシートなどが挙げられます。これらのサービスの人気が増していくとOffice製品のシェアが下がり、結果的にVBAの使用頻度も下がります。
VBAが仕事で役立つシーン
VBAはWordやExcelなどのアプリケーションの標準機能を拡張して、仕事の効率化や自動化に使われます。VBAがどのように仕事に活かされているのか、具体例を挙げて解説します。
Excelの機能拡張(ExcelVBA)
VBAをExcelの仕事で活用する例として、複数のシートを同時に作成するケースを紹介します。
例えば住所や年齢、職業など多くの項目から構成されている顧客情報の一覧を保存しているファイルがあるとします。Excelには標準で外部ファイルを読み込む機能が搭載されていますが、この機能は1つのファイルのデータを1つのシートに展開する機能だけを持ちます。
しかしVBAを使うことで、複数の顧客情報を持つファイルから、顧客1人ずつの伝票などの帳票を各シートに連続して作成することができます。VBAを使わない場合、顧客ごとの伝票を作成するために、顧客情報の一覧から、1人ずつ項目をコピーアンドペーストして作成する必要がありますが、VBAを使うことで、そのような作業をしなくても、単純にデータを読み込むだけで、複数のシートに分けて作成できるのです。
またExcelにはAccessなどの外部のデータベースからデータを読み込む機能もあります。大量のデータをExcelに保存してしまうと、Excelが重くなることがあるため、大量データの保存には専用のデータベースを持つAccessなどを使うべきです。そしてExcelのデータを表示するだけのインターフェースとして使えば、動作が重くなることもありません。
Accessの機能拡張(AccessVBA)
大量の商品データや顧客データの管理、またそれらのデータを活用した予約管理や在庫管理など、データベース管理ソフトであるAccessはさまざまな場面で活用されています。AccessもExcel同様にVBAを使うことで機能拡張が可能です。(ExcelVBA、AccessVBAとそれぞれ呼ばれることがありますが、書き方のルールは同じです)
データの取り込み処理の自動化、検索フォームの作成、またExcelと同様にAccessでもVBAを使うことで外部アプリケーションの呼び出しや操作なども行うことができます。
以下、Microsoft Office製品においてVBAができることの具体例をご紹介します。
専用の入力フォームの作成
ExcelやAccessには入力するデータを逐一チェックできる専用の入力フォームを作成できます。
例えばExcelにデータを入力する場合、通常はセルに直接、数値や文字列を入力します。しかしセルに入力されたデータが適切なものであるかどうか保証できません。例えば数字を入力すべきセルに文字列が入力されている場合、そのセルのデータを利用して関数を動作させてしまうと、関数によってはエラーが発生することもあります。
VBAにはWindowsのアプリケーションでよく見かける専用の入力フォームを作成できる機能があり、その入力フォームにデータを入力させると、VBAのプログラムで入力データのチェックが可能です。
さらにVBAにより不適切なデータを自動で訂正させたり、警告のメッセージを表示させたりできます。不適切なデータ入力によるエラーも防げるため、仕事の効率や精度が大幅に上昇します。
ファイルからデータを抽出してメールを自動送信
VBAを使うと、様々な項目から構成されている顧客情報の一覧から、氏名とメールアドレスを抜き出して、自動的にメールを送信させることも可能となります。
抜き出した氏名とメールアドレスを送信先情報として利用し、メールの件名や本文には自由な文字列を設定できます。抜き出した送信先のメールアドレスに応じて、本文や件名を変えることもVBAのプログラムで制御できます。
Office製品のメールソフトであるOutlookをVBAで連携させれば、Outlookに設定されているメールアカウントの情報を使って、VBAでメールを送信できます。
これにより大量の送信先にメールを送信する仕事を効率化できます。1件ずつメールを送信するときに発生しがちな送信先メールアドレスの入力ミスなども、VBAを使った自動のメール送信ならば完全に防げるのです。
グラフを自動作成するレポーティングツールの作成
Excelにはデータから様々な形式のグラフを作成する機能があります。しかしグラフを作成するためには、グラフ化するデータを選択したり加工したりしなければなりません。また同じデータを使って、多角的な分析をするための集計作業も必要でしょう。
しかしExcel VBAを使えば、このような仕事も簡単にできます。Excel VBAであらかじめプログラムを作っておけば、データを入力するだけで集計やグラフ作成などの仕事を自動化できます。
その他仕事で使えるマクロ(業務改善事例)
一定の手順を記録して再生する機能であるマクロは、VBAによってその処理内容を編集できます。それによって、通常のマクロではできなかった、複雑な処理を実行させたり、繰り返し実行させたりなどブラッシュアップが可能です。
例えばインターネットでは、業務の改善に役立つ特定の操作に特化したマクロが公開されていますが、そのマクロをVBAで編集すれば、自社の業務に特化させたマクロとして利用させることも可能です。
関連記事:初心者必見!VBAで何ができる?マクロ、関数についても解説
VBAエンジニアの年収例
2023年7月時点で、レバテックキャリアに掲載されているVBA関連求人の年収は330万円~580万円が平均額となります。Office製品のバージョンアップ対応や古いVBAの改修のほか、ほかの言語によるシステム開発の経験を必要とする求人もあり、仕様書の作成スキルや、外部設計・内部設計の実務経験などにより年収が高くなる傾向にあります。
また高いスキルと豊富な経験を身につけて、フリーランスになることで、年収1000万円以上を得ることも可能です。VBAエンジニアが年収アップを狙う方法としては、VBA以外の言語を習得して、複数のプログラミング言語が必要となる求人へ応募したり、VBAエキスパートといった資格を取得し、VBAエンジニアとしての客観的なスキルを示したりする方法が有効です。
VBAの求人例をチェック
レバテックキャリアの求人データを参考に、VBAのスキルが必要な募集求人例を紹介します。このような求人ではVBAのスキルは仕事を進める上での必須条件という扱いが多く、VBAのスキルを活かしながら、社内で様々な業務を進めていくという会社が多いようです。
【業界】
◆IT・通信
【業務内容】
◆社内の管理システムの開発、運用、保守
主に売上や書類に関する管理システムの開発、運用、保守に携わっていただきます。ゆくゆくは新規システムの企画や開発にも関わっていただく予定です。
・社内データの管理
・売上に関する管理システムの運用、保守
・書類などに関する管理システムの運用、保守
・新規システムの企画、開発、運用
【求められるスキル・経験】
・VBAを使用した開発経験(1年以上)
・管理システム運用・開発経験(2年以上)
・ポジティブ思考な方
・論理的に物事を考えられる方
【想定年収】
350~600万円
【福利厚生】
健康保険/厚生年金/雇用保険/労災保険/通勤手当/残業手当/慶弔休暇/年末年始/有給休暇/育児時短勤務制度
【勤務地】
東京都
VBAの勉強法
VBAを仕事で使えるようになるための勉強法を紹介します。まずは手ごろなオンライン教材を使って、VBAの概要をざっと掴んでから、書籍による本格的な学習に進むのがおすすめです。
おすすめのオンライン教材
インターネットにはVBAを学習できるオンライン教材がいくつかあります。例えば動画で学びたい人は、ドットインストールがおすすめです。
ドットインストールはプログラミングスキルを短い動画を使って効率良く学べる学習サイトです。様々なITスキルの学習ができますが、そのうちの1つに「Excel VBA入門」があります。
全19回の講義のうち、最初の4回は無料で閲覧できますが、残りの15回は有料のプレミアムプランに加入する必要があります。4回目までの動画を見て、自分にあっていると思ったら、プレミアム会員になり続きの動画で学習すると良いでしょう。
VBAの応用を本格的に学びたい人は、Udemyがおすすめです。Udemyでは様々な講師がExcel VBAの講義を公開しています。初心者から上級者まで、自分のレベルにあった講義を選んで学習できます。
Udemyでは一度講義に課金すると、永久にその講義を閲覧できる買い取り型の課金システムを採用しています。動画で講義を学べるだけでなく、掲示板で講師に質問できるシステムも用意されています。
エクセルVBAプログラミングを学べるおすすめの書籍
Excel VBAに関する書籍も販売されています。初心者向けと中級者向けにそれぞれ1冊ずつ紹介します。
『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』
『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』は、初心者が最初に学ぶ1冊としておすすめです。本書はExcel VBAを使って様々な業務を自動化する方法を解説している一冊です。単純なVBAの文法の解説に留まらず、VBAの開発環境の使い方や、効率的なデバッグ方法などについても詳細に説明しています。
『新装改訂版 Excel VBA 本格入門』
中級者向けには『新装改訂版 Excel VBA 本格入門』を勧めます。VBAの詳しい文法の解説に加えて、ユーザーフォームやコントロールの使い方など、Excel VBAを実務レベルで使いこなしたい人にとって有用な1冊です。基礎編ではVBAプログラミングの文法や制御構造を学び、実践編では様々なコントロールやVBA関数の使い方を詳しく学べます。
VBAの資格「VBAエキスパート」について
VBAのスキルを身につけられる資格に「VBAエキスパート」があります。この資格を取得すると、マクロやVBAのスキルを証明することができます。
VBAエキスパートの種類
VBAエキスパートには以下の4つの種類があります。
-
・Excel VBAベーシック・Excel VBAスタンダード
・Access VBAベーシック
・Access VBAスタンダード
VBAエキスパートが対象としているのは、上記の通りExcelとAccessのみです。VBAは他のOffice製品でも使用できますが、多くの場合はExcelとAccessで使用します。そのため、ExcelかAccessの資格を取得すればスキルとして役立つでしょう。事務処理で多く使用されるのは特にExcelのVBAです。
VBAエキスパートの難易度
VBAエキパートでは、初心者向けが「ベーシック」中級者向けが「スタンダード」という位置づけです。試験の合格ラインを目指す場合、ベーシックは1カ月程度、スタンダードが3か月程度の勉強期間が必要でしょう。
もともとIT系の仕事をしている方や、ExcelやAccessの機能に詳しい方でしたら、それほど時間はかからないかもしれません。一方、ExcelやAccessの初心者の方ですと、まずはそれらの基礎的な機能から身につける必要があるため、さらに時間がかかると思われます。
VBAエキスパートの需要
VBAエキスパートの資格を取得することで、就職や転職時のスキルの証明に役立てられます。自分からそのような資格を取得したことで、スキルアップしようとする意欲も評価してくれるでしょう。特に経理や総務などの事務職やマーケティング職など、ExcelやAccessの利用頻度の高い職種における転職では、VBAエキスパートの取得が有利に働く可能性が高くなります。
そして何よりVBAを身につけられれば、業務の作業効率も圧倒的に向上します。これまで膨大な時間を必要としていた作業もVBAによって自動化させれば、空いた時間で別の仕事を進めることも可能となるでしょう。
VBAエンジニア、VBAプログラマーとしてのキャリアを目指すのであれば、中級者向けである「VBAスタンダード」を取得しておきたいところです。
VBAエンジニアとしてのキャリアアップ
VBAのスキルを身につけることでVBAエンジニアとして活躍できますが、さらにそこからキャリアアップを目指すこともできるでしょう。
ほかの言語を学ぶ
VBAの次に、ほかのプログラミング言語を学ぶことで、さらにスキルアップすることができます。たとえばPythonは機械学習などの分野で注目を集めているプログラミング言語であり、Excelの機能を拡張するライブラリなども登場しています。
将来性のあるプログラミング言語
将来性のあるプログラミング言語として、以下が挙げられます。
-
・PHP・Ruby
・Flutter(Dart)
・Go
・Scala
PHPやRubyはWeb開発では主要言語になっていて、今後も需要は続くでしょう。Flutter(Dart)はiOSとAndroidのアプリを同時に開発できる言語です。現状はスマホアプリはOSごとに分けて開発されるケースが多いですが、今後は同時開発が進んでいくと考えられます。
GoはGoogleが開発した言語で、普及が進んでいます。日々アップデートされているので、Web開発の主軸になっていく可能性も高いです。ScalaはJavaとの互換性があり、Javaの後継言語とも言われます。
オブジェクト指向と関数型の両方の構造でプログラミング可能で、コードが効率的です。難易度はやや高めですが、Scalaを習得したエンジニアの需要は高まっていくでしょう。実際、Scalaエンジニアの平均年収は他の言語に比べて高めです。言語別平均年収ランキングでトップや上位になることも少なくありません。
上流知識やマネジメントスキルを習得する
さらに上流工程の知識やマネジメントスキルを習得することで、プロジェクトマネージャーなどの職種にチャレンジすることもできます。上流工程の知識とは、要求定義や外部設計、内部設計などです。
マネジメントスキルとは、進捗管理や品質管理などのスキルです。上流工程の知識やマネジメントスキルは、社会人として経験を積むことで、自然と求められるスキルですので、自社だけでなく転職活動時にも高い評価を得られるスキルと言えるでしょう。
VBAに関するよくある質問
VBAに関するよくある質問に回答します。
Q1. VBAで何ができる?
VBAを活用することで、複雑な手順の操作を自動化したり、大量のデータを高速に処理したりできます。特にExcelやAccessのような数値データを扱うアプリケーションでは、VBAを導入することで非常に業務を効率化できます。
Q2. VBAの将来性は?
将来性は十分にあります。一般的な会社のエンジニア以外の人であれば、ほとんどの人がエクセルを多用しています。VBAを活用して効率化できる業務が探せばいくらでもありますし、VBAのスキルは基本的にどこの会社でも役に立ちます。VBAを習得すればスキルの差別化にもつながります。
Q3. VBAは評価されない?
エクセルは使いこなしている人が多いのに対して、エクセルVBAを理解している人は少ないのが現状です。そのため、エクセルVBAのスキルを習得すれば、社内でも転職市場でも重宝される人材になることができます。
関連記事:VBAは転職で有利になる?事務職・エンジニア職のスキルの違い
まとめ
この記事では、VBAを活かせる仕事や将来性について解説してきました。VBAはOffice製品を利用するうえで、非常に便利なプログラミング言語です。VBAを使いこなせれば、Office製品の機能を拡張して、仕事を大幅に効率アップさせることが可能です。
VBAはエンジニア以外でも学びやすい言語です。普段、WordやExcelを使った仕事をしている事務系職業の方などは、ステップアップのためにVBAを習得してみてはいかがでしょうか。
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。
「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。
「個別相談会」に申し込む
転職支援サービスに申し込む
※転職活動を強制することはございません。
レバテックキャリアのサービスについて