事務仕事に役立つVBA!就職や転職での需要は?VBAとは?仕事での活用法や将来性、勉強方法も解説

最終更新日:2022年6月30日

レバテックキャリアは
ITエンジニア・Webクリエイター専門の転職エージェントです

Microsoft OfficeのアプリケーションであるExcelやWord、PowerPointは様々な仕事で日常的に使われています。VBA(Visual Basic for Applications)とは、これらOffice製品の機能を拡張し、仕事の効率化や自動化を行えるプログラミング言語です。VBAを使いこなすことで、具体的にはどのような仕事に役立つのでしょうか。

この記事ではVBAの学習を検討している方へ向け、VBAのメリットやデメリット、将来性、勉強方法などについて詳しく解説します。

1. VBAとは

VBA(Visual Basic for Applications)とは、WordやExcel、PowerPoint、AccessといったMicrosoft Office製品に標準搭載されているVisual Basicをベースにしたプログラミング開発環境です。

VBAを活用することで、複雑な手順の操作を自動化したり、大量のデータを高速に処理したりできます。特にExcelやAccessのような数値データを扱うアプリケーションでは、VBAを導入することで非常に業務を効率化できます。ちょっとしたプログラミングに留まらず、Office製品を利用した本格的なシステム開発にもVBAは用いられています。

マクロとの違い

VBAと同様のことができる機能としてマクロがあります。マクロとは定型的な作業を記録して自動で実行させるための機能のことです。例えばExcelの場合、マクロ記録を開始して一定の操作を実行し、マクロを終了させると、その一定の操作がマクロとして記録されます。記録されたマクロは必要なときに再生させることが可能です。

しかしながら、記録できる操作や内容に制限があります。しかしVBAを利用すれば、マクロのような機能をプログラミングで制御できるため、操作や内容に制限がありませんし、実行条件なども細かく制御可能です。

関連記事:VBAとマクロの違いとは?それぞれ何ができるのか

2. 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で「できること」と「できないこと」は?マクロ、関数についても解説

3. VBA活用のメリット・デメリット

ここまでの説明で非常に便利であることをお伝えしたVBAですが、メリットだけでなくデメリットも存在します。以下ではメリットとデメリットをご紹介します。

VBAのメリットは業務効率化が可能なこと

VBAはOffice製品に標準搭載されているため、環境構築が不要で手軽に開発することができます。シンプルなシステム開発に適しており、データベースとの連携もスムーズに行うことができます。業務効率化により、労働時間の短縮や業務の定型化を図ることができるのもメリットです。

VBAのデメリットは用途がOffice製品に限られていること

VBAはOffice製品に用途が限られており、汎用性がありません。また、Office製品のバージョンが変わると動作不良を起こすこともあります。大量のデータ処理をすると時間がかかったり、複数人で同時にファイルを編集することができなかったりなどの欠点も挙げられます。活用できるのは、あくまでもOffice製品を使った業務の効率化に留まります。

実務面での制限という点もありますが、エンジニア・プログラマーとしてのキャリアを考えたときにVBAという言語は他の言語よりも汎用性に欠けてしまうと言っても良いでしょう。

セキュリティ上の理由でマクロが禁止されている会社も

古くから悪意を持ったマクロがコンピュータウイルスとして出回っていたことがあり、会社によってはセキュリティ対策の一環として、全てのマクロの実行を禁止していることがあります。そのような環境下においては、VBAの出番はほぼないと言ってもよいでしょう。

また一概に全てのマクロの実行を禁止させるのではなく、デジタル署名されているマクロのみ実行させる設定が施されている企業もあります。

4. VBAのスキルが役立つ職業

VBAのスキルが活かせる2つの職業を紹介します。

事務職/経理職

Excelを中心としてOffice製品を最も日常的に使っている職種といえば、事務職や経理職の方です。データを集計する際には主に関数を使用すると思いますが、それでも作業に無駄を感じることもあるでしょう。関数は基本的に計算を自動化することしかできませんので、あくまでExcelの範囲内でしか使えません。

しかしVBAが使えると、特定の手順を自動化できたり、データベースから自動でデータを抽出したり、関数を使って自動計算したり、より多くのことが実現できます。VBAを使いこなせると、普段の業務を大幅に改善できる可能性があります。

プログラマー/SE

プログラマーやSEは、コーディング以外にもExcel等を活用して資料を作成する場面が多々あります。特にSEは開発プロジェクトの要件定義や仕様設計の段階から関わり、さまざまな資料をExcelで作成します。

テストケースの作成や障害の自動計算などにVBAを活用するケースが多くあります。また、予算の関係から、システム部門では内製化しやすいVBAで開発してコストを抑えるケースも多く見られます。

関連記事:VBAは転職に役立つのか?事務職・エンジニア職におけるスキルの違いも解説

VBAスキル習得に向いている人=Officeソフトを使う機会が多い人

普段の業務でWordやExcelなどのOfficeソフトを使う機会が多い人は、VBAスキルの習得に向いています。VBAを使いこなせるようになれば、Officeソフトの標準の機能だけで仕事をするより、さらに業務を効率化できるからです。

VBAを使って複雑な作業を記録して自動化させれば、マウスやキーボードで行っていた作業の圧倒的な時間短縮も可能となるでしょう。

5. VBAは時代遅れ?プログラミング言語としての将来性について

PythonでExcelを扱えるようになったことで、VBAはもう不要では?という声もあります。確かにPythonは汎用性の高い言語ではありますが、VBAはプログラミング初心者でも学びやすい・覚えやすいという利点があります。そのためVBAという言語は今後も根強く残る可能性が高く、将来性は決して低くありません。

しかしもしエンジニアとしてのキャリアの可能性を広げたいのであれば、VBA以外の言語も習得することをおすすめします。

上記のように、VBAには将来性があるという意見と、将来性を危惧する意見の両方があります。まずはVBAには将来性があるという意見から見ていきましょう。

VBAに将来性があるという意見

VBAには将来性があるという意見から紹介します。

便利な割にVBAができる人が単純に少ない

VBAは非常に便利ですが、使いこなせる人はそれほど多くありません。VBAはVisual Basicという言語を使ったプログラミングであり、使いこなすためには一定のプログラミングスキルが必要になる一方で、業務でWordやExcelを使っている職種には非IT系の事務員が多く、プログラミングとは縁が少ない仕事をしているので、習得の機会がそれほど多くないからです。

簡単にシステム開発ができる

VBAは開発工程がシンプルであるため、素早くシステム開発をすることができます。そのため開発コストも運用コストも安価で済ませることができます。ITに長けている人材が社内にいれば、インハウスで開発から運用まで済ませることも可能です。このような背景から、主にシステム部門で活用されています。

ExcelやAccessが廃れない限り需要もなくならない

WordやExcelに代表されるOffice製品は1990年代から存在する歴史のある製品です。

2022年現在、Microsoft社は買い切り型のOfficeに加えて、サブスクリプション制である「Microsoft 365」を提供しています。これはWordやExcelのようなアプリケーションに加えて、オンラインストレージであるOneDriveと統合されています。

さらにブラウザ上で動作するOffice Onlineも登場しています。これはGoogleドライブやGoogleスプレッドシートと似た機能を持っています。

Office製品は、世界中の企業に最も普及しているビジネスツールです。上記Google製品などもシェアを伸ばしていますが、まだまだOffice製品が大きなシェアを握っています。導入している企業が多いということは、業務内容に合わせてOffice製品をカスタマイズする場面も必然的に多くなることを意味します。

PythonでExcelを扱えるようになったことを考慮しても、習得の難易度を考えた場合、ExcelやAccessが廃れない限りは、VBAの需要はしばらくはなくならないものと予想されます。

VBAはやめとけ、と他の言語を推奨する意見

VBAに将来性があるという意見とは対照的に、VBAの将来性を危惧する意見も存在します。

大量のデータを処理するのには不向き

VBAを用いたシステム開発には、Excelが用いられることが多いです。しかしExcelは複数人での同時利用ができなかったり、大量のデータを処理すると実用的でないほど時間がかかったりします。

例えばビッグデータのような非常に大量のデータを処理することは、Excel VBAでは難しいでしょう。2022年現在で最新バージョンであるExcel 2019でも最大1048576行で最大16384列のデータまでしか操作できないようになっています。そのような大量のビッグデータを扱うためには、データベースに特化したソフトウェアやプログラミング言語を使う必要があります。

用途が限られている

VBAの主な用途はあくまでOffice製品の利便性向上や簡易的なシステム開発です。工夫次第ではシンプルなゲームを作成することもできますが、CやC++などの言語と比較すると、VBAはゲーム開発用のフレームワークがないためゲーム開発に向いていないと言えます。

事実上、長年アップデートされていない

VBAは約20年の間、事実上アップデートされていません。新たに発生し続ける需要に適応できない場面もあり、言語性能の限界を感じさせる意見もあります。そのため、他の言語に需要が置き換えられる可能性もあります。

ブラウザベースのサービスが普及してきている

Office製品はインストール型が主流でしたが、2022年ではブラウザベースのサービスがシェアを伸ばしています。これらは、機能的にOffice製品に劣っている部分がありますが、VBAと同等の機能が提供され始めるなど日々改善が進められています。

例えばGoogleが提供しているGoogleスプレッドシートはExcelに似た機能を持つアプリケーションです。ブラウザ上で動作させることができ、複数のユーザーが同時に編集できる機能を持ちます。またGoogle Apps Scriptとよばれるプログラミング言語で機能を拡張できます。これはExcelにおけるVBAのような機能です。

Microsoft社もMicrosoft 365のようにOffice製品をクラウドで活用できる基盤を準備しています。しかし、すでにGoogleスプレッドシートのようなクラウドサービスを使っているユーザーから、Excelに乗り換えさせるには、何らかの強いメリットや動機が必要となってくるでしょう。このままブラウザベースのサービスを使い続けることは、当然考えられます。

「VBAはプログラミングではない」という声について

VBAは「Office製品の機能拡張」という目的で使われることがほとんどの言語です。新しいシステムを開発するものではないという認識が強いのと、他の言語と比べてVBAは習得難易度が低いことから「VBAができるだけではプログラマーとは呼べない」「VBAはプログラミングではない」という声もあるようです。

事実ベースとしてはVBAはれっきとしたプログラミング言語であり、VBAを専門とするプログラマーやエンジニア、またVBAスキルが求められる正社員募集やフリーランス向け案件も多数存在します。ただし、これまでにもご説明した通りOffice製品に依存する言語であることも事実であるため、システム開発などのキャリアを目指すのであれば他の言語も勉強することをおすすめします。

VBAとPython、学ぶならどちらがいいのか

機械学習などの分野ではPythonというプログラミング言語が普及しています。VBAとPythonのどちらを学ぶべきか、悩んでいる方もいるでしょう。

結論から言えば、WordやExcelをメインに使っている方は、VBAを学んだほうがいち早く業務には役立ちます。Pythonを使ってExcelを自動化させる方法もありますが、特殊なライブラリが必要になり、そもそも新しくPythonのプログラミングを習得しなければなりません。VBAは比較的初学者向きの言語であり、PythonはVBAと比べると習得難易度の高い言語です。

しかし習得が大変というデメリットもある一方で、汎用性や将来性を考えると求人数の多いPythonに分があるのが現状です。もしOffice製品だけでなく広範囲な領域における「エンジニア」としてのキャリアアップを求めるのであれば、腰を据えてPythonを学習することをおすすめします。

6. VBAを仕事で使えるようになるための勉強法

VBAを仕事で使えるようになるための勉強法を紹介します。まずは手ごろなオンライン教材を使って、VBAの概要をざっと掴んでから、書籍による本格的な学習に進むのがおすすめです。

おすすめのオンライン教材

インターネットにはVBAを学習できるオンライン教材がいくつかあります。例えば動画で学びたい人は、ドットインストールがおすすめです。

ドットインストールはプログラミングスキルを短い動画を使って効率良く学べる学習サイトです。様々なITスキルの学習ができますが、そのうちの1つに「Excel VBA入門」があります。

全19回の講義のうち、最初の4回は無料で閲覧できますが、残りの15回は有料のプレミアムプランに加入する必要があります。4回目までの動画を見て、自分にあっていると思ったら、プレミアム会員になり続きの動画で学習すると良いでしょう。

VBAの応用を本格的に学びたい人は、Udemyがおすすめです。Udemyでは様々な講師がExcel VBAの講義を公開しています。初心者から上級者まで、自分のレベルにあった講義を選んで学習できます。

Udemyでは一度講義に課金すると、永久にその講義を閲覧できる買い取り型の課金システムを採用しています。動画で講義を学べるだけでなく、掲示板で講師に質問できるシステムも用意されています。

おすすめの書籍

Excel VBAに関する書籍も販売されています。初心者向けと中級者向けにそれぞれ1冊ずつ紹介します。

エクセルVBAプログラミングを学べる本

たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】
初心者が最初に学ぶ1冊としておすすめです。本書はExcel VBAを使って様々な業務を自動化する方法を解説している一冊です。単純なVBAの文法の解説に留まらず、VBAの開発環境の使い方や、効率的なデバッグ方法などについても詳細に説明しています。

新装改訂版 Excel VBA 本格入門
中級者向けには『新装改訂版 Excel VBA 本格入門』を勧めます。VBAの詳しい文法の解説に加えて、ユーザーフォームやコントロールの使い方など、Excel VBAを実務レベルで使いこなしたい人にとって有用な1冊です。基礎編ではVBAプログラミングの文法や制御構造を学び、実践編では様々なコントロールやVBA関数の使い方を詳しく学べます。

7. VBAの資格「VBAエキスパート」について

VBAのスキルを身につけられる資格に「VBAエキスパート」があります。この資格を取得すると、マクロやVBAのスキルを証明することができます。

VBAエキスパートの種類

VBAエキスパートには以下の4つの種類があります。
 

  • ・Excel VBAベーシック

    ・Excel VBAスタンダード

    ・Access VBAベーシック

    ・Access VBAスタンダード


VBAエキスパートが対象としているのは、上記の通りExcelとAccessのみです。

VBAエキスパートの難易度

VBAエキパートでは、初心者向けが「ベーシック」中級者向けが「スタンダード」という位置づけです。試験の合格ラインを目指す場合、ベーシックは1カ月程度、スタンダードが3か月程度の勉強期間が必要でしょう。

もともとIT系の仕事をしている方や、ExcelやAccessの機能に詳しい方でしたら、それほど時間はかからないかもしれません。一方、ExcelやAccessの初心者の方ですと、まずはそれらの基礎的な機能から身につける必要があるため、さらに時間がかかると思われます。

VBAエキスパートの需要

VBAエキスパートの資格を取得することで、就職や転職時のスキルの証明に役立てられます。自分からそのような資格を取得したことで、スキルアップしようとする意欲も評価してくれるでしょう。特に経理や総務などの事務職やマーケティング職など、ExcelやAccessの利用頻度の高い職種における転職では、VBAエキスパートの取得が有利に働く可能性が高くなります。

そして何よりVBAを身につけられれば、業務の作業効率も圧倒的に向上します。これまで膨大な時間を必要としていた作業もVBAによって自動化させれば、空いた時間で別の仕事を進めることも可能となるでしょう。

VBAエンジニア、VBAプログラマーとしてのキャリアを目指すのであれば、中級者向けである「VBAスタンダード」を取得しておきたいところです。

8. VBAエンジニアとしてのキャリアアップ

VBAのスキルを身につけることでVBAエンジニアとして活躍できますが、さらにそこからキャリアアップを目指すこともできるでしょう。

他の言語を学ぶ

VBAの次に、ほかのプログラミング言語を学ぶことで、さらにスキルアップすることができます。たとえばPythonは機械学習などの分野で注目を集めているプログラミング言語であり、Excelの機能を拡張するライブラリなども登場しています。

上流知識やマネジメントスキルを習得する

さらに上流工程の知識やマネジメントスキルを習得することで、プロジェクトマネージャーなどの職種にチャレンジすることもできます。上流工程の知識とは、要求定義や外部設計、内部設計などです。

マネジメントスキルとは、進捗管理や品質管理などのスキルです。上流工程の知識やマネジメントスキルは、社会人として経験を積むことで、自然と求められるスキルですので、自社だけでなく転職活動時にも高い評価を得られるスキルと言えるでしょう。

9. VBAの募集求人例をチェック

最後に、レバテックキャリアの求人データを参考に、VBAのスキルが必要な募集求人例を紹介します。このような求人ではVBAのスキルは仕事を進める上での必須条件という扱いが多く、VBAのスキルを活かしながら、社内で様々な業務を進めていくという会社が多いようです。

【業界】
◆IT・通信

【業務内容】
◆社内の管理システムの開発、運用、保守

主に売上や書類に関する管理システムの開発、運用、保守に携わっていただきます。ゆくゆくは新規システムの企画や開発にも関わっていただく予定です。

・社内データの管理
・売上に関する管理システムの運用、保守
・書類などに関する管理システムの運用、保守
・新規システムの企画、開発、運用

【求められるスキル・経験】
・VBAを使用した開発経験(1年以上)
・管理システム運用・開発経験(2年以上)
・ポジティブ思考な方
・論理的に物事を考えられる方

【想定年収】
350~600万円

【福利厚生】
健康保険/厚生年金/雇用保険/労災保険/通勤手当/残業手当/慶弔休暇/年末年始/有給休暇/育児時短勤務制度

【勤務地】
東京都

VBAの求人を探す>

VBAエンジニアの年収例

レバテックキャリアに掲載されているVBA関連求人の年収は、330万円~580万円が平均額となります。Office製品のバージョンアップ対応や古いVBAの改修のほか、ほかの言語によるシステム開発の経験を必要とする求人もあり、仕様書の作成スキルや、外部設計・内部設計の実務経験などにより年収が高くなる傾向にあります。

10. まとめ

この記事では、VBAを活かせる仕事や将来性について解説してきました。VBAはOffice製品を利用するうえで、非常に便利なプログラミング言語です。VBAを使いこなせれば、Office製品の機能を拡張して、仕事を大幅に効率アップさせることが可能です。

VBAはエンジニア以外でも学びやすい言語です。普段、WordやExcelを使った仕事をしている事務系職業の方などは、ステップアップのためにVBAを習得してみてはいかがでしょうか。

ITエンジニア・Webクリエイターの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア・クリエイターを専門とする転職エージェントです。最新の技術情報や業界動向に精通したキャリアアドバイザーが、年収・技術志向・今後のキャリアパス・ワークライフバランスなど、一人ひとりの希望に寄り添いながら転職活動をサポートします。一般公開されていない大手企業や優良企業の非公開求人も多数保有していますので、まずは一度カウンセリングにお越しください。

転職支援サービスに申し込む

また、「初めての転職で、何から始めていいかわからない」「まだ転職するかどうか迷っている」など、転職活動に何らかの不安を抱えている方には、無料の個別相談会も実施しています。キャリアアドバイザーが一対一で、これからのあなたのキャリアを一緒に考えます。お気軽にご相談ください。

「個別相談会」に申し込む

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

人気の求人特集

内定率が高い

関連する記事

人気の記事

スキルアップ記事トップへ

VBAの求人・転職一覧