あなたは「VBAを勉強しようか迷っているけど、やめとけって言われる」と悩んだことはありませんか?
結論、VBAには確かにデメリットがありますが、使い方次第では今でも強力なツールです。
この記事を読むことでVBAの現実的な評価とキャリアへの影響がわかるようになりますよ。
ぜひ最後まで読んでください。
1.VBAは「やめとけ」と言われる理由

技術の陳腐化と時代遅れという指摘
VBAは1990年代に登場した古い技術であり、その設計は当時のアプリケーション自動化を意図して作られています。
そのため、プログラミングの標準やデザインが現代のトレンドに対応できず、新しい機能や仕様に適合するための拡張性が欠けているという問題があります。
他のプログラミング言語と比較すると、コードの可読性や保守性に欠けるため、長期的なプロジェクト管理に難がある状況です。
特に、Webベースのアプリケーションやクラウドサービスが普及する中で、これらの技術と連携しづらい点が顕著に見られます。
また、VBAはクロスプラットフォーム対応が弱く、WindowsとmacOSのOfficeではマクロの動作に互換性のない機能があり、同じコードで処理を再現するのが困難です。
このような技術的な制約により、VBAは時代遅れだと指摘されることが多いのです。
セキュリティリスクとマクロウイルスの脅威
VBAで作成されたプログラムはMicrosoft Officeアプリケーション内で実行されるため、通常のファイルとして容易に共有が可能です。
これにより、悪意のあるコードが含まれている場合、そのファイルを開いたユーザーの環境で自動的にプログラムが実行される危険性があります。
一度実行されると、システムファイルの改ざんや個人情報の漏洩など、さまざまな不正行為を引き起こす可能性があり危険です。
マクロウイルスの歴史は古く、1999年のMelissaウイルスは世界的な大流行を引き起こし、ビジネスに甚大な影響を与えました。
近年では、LockyやGandCrab、Emotetといったランサムウェアがマクロを拡散ベクトルとして頻繁に利用しており、VBAのセキュリティリスクは現在も続いています。
そのため、多くの企業や組織では、VBAで作成されたマクロの実行を制限し、信頼されたソースからのみファイルを開くよう指導しています。
開発効率の悪さとコードの保守性の低さ
VBAはシングルスレッドで動作するため、一度に一つのプロセスしか実行できません。
そのため、複数の処理を並行して進めるマルチスレッディングは基本的に不可能です。
膨大なデータの処理や複雑な計算を行う場合、全ての処理を一つずつ順番に実行するため、待機時間が長くなり、全体的な処理速度が低下します。
現代的なプログラミング言語(Python、JavaScript、C#など)は、VBAよりも開発効率が高く、より大規模なプログラムを効率的に開発することができます。
これらの言語は、強力な型システム、高度なオブジェクト指向プログラミング機能、豊富なIDE機能、効率的なエラー処理などを備えています。
VBAで開発していたシステムを現代的なプログラミング言語に移行することで、開発効率を大幅に向上させることができます。
会社で評価されにくい現実
VBAはとっつきやすさから、会社の承認を得ずに進めるケースが多いですよね。
VBAに触れてまもないころに、会社の承認を得てしっかり順序だててやってしまったら、完成させなきゃいけなりますしね。
その結果、出来上がったとしても、会社の許可を得ずにかってに作ったシステムなので、なかなか評価されないというのは、確かにそのとおりだと思います。
個人や部署レベルの業務効率化には貢献できるけど、それ以上になにか業務効率化をすすめようとすると、もともとがただのExcelなので、限界がきてしまいます。
会社の風土として、このように自己研鑽の結果生じた、会社に利する行動や成果物をちゃんと評価してくれる仕組みがあればいいんですけどね。
一部の方からは、VBAってプログラミングじゃないよね、みたいな言われ方をすることがあり、Microsoftのアプリケーション上でしか動かないもんねー、みたいに下にみられることがあります。
汎用性の低さと他システムへの展開の難しさ
VBAはMicrosoft Officeアプリケーションに組み込まれたプログラミング言語であり、特にWindows環境での動作を前提としています。
そのため、macOSやLinuxなど他のオペレーティングシステムでは、VBAコードを直接動かせない、または利用できる機能が制限されます。
さらに、VBAはデスクトップアプリケーション用に設計されているため、Webブラウザ上のアプリケーションやクラウドベースのサービスと直接連携することが難しく、他のプラットフォームで利用できる技術と比較して柔軟性が低いとされています。
VBAは汎用性が高くないため、Excel作業以外の作業については、できるだけVBAを使わないようにしている人が多いです。
VBAがやめとけと言われる一因として、その汎用性の低さが挙げられると思います。
2.VBAが現在も必要とされる場面

Excel業務の自動化に最適なツール
VBAはExcelやAccessなどのMicrosoft Office製品の作業を自動化するためのプログラミング言語であり、反復的なタスクをプログラムで簡単に処理できます。
たとえば、毎月の売上データを集計し、グラフやレポートを作成する業務がある場合、VBAでマクロを作成すれば、手作業で行っていたデータ集計や書式設定を自動化し、短時間で高精度に処理することが可能です。
これにより、作業時間の大幅な削減と人的ミスの防止が期待できます。
日本ではエクセルを利用する会社が多いため、VBAは多くの会社で重宝されるスキルと言えるのではないでしょうか。
Microsoftのアプリケーション上でしか動かないやんのやんの言われますけど、大企業でもない限り、自社の独自システム使って業務することのが少なく、データの処理やいろいろあれやこれやは、Excelがまだ最前線にいると思うので、その作業を効率化できるプログラムは有益です。
環境構築不要で導入ハードルが低い
VBAはExcelさえ入っていれば、すぐに実行できます。
外部ライブラリのインストールも不要で、業務PCに制限がある環境でも扱えるのは大きな利点です。
VBAのエディタはOffice製品に組み込まれているため、追加のソフトウェアをインストールする必要がない点が魅力です。
一般的な企業であればPythonの存在を知らないマネージャーも多いですし、Pythonのインストール自体できない職場もあります。
VBAはパッケージ化されているというのは最大のメリットであり、今すぐ何もしなくても(VBEを開く作業はありますが)使用できるというのが使用する一番の理由だと思います。
多くの企業でExcel業務がある限り、VBAの需要はなくならないでしょう。
非エンジニアでも習得しやすい学習コスト
VBAはプログラミング経験がない人にとって、比較的容易に学習できるという利点があります。
VBAの文法は、他のプログラミング言語に比べてシンプルで、直感的に理解しやすいように設計されています。
VBAの学習コストが低い理由は、Office製品との親和性、豊富な学習リソース、簡単な開発環境という点です。
ExcelなどのOffice製品を日常的に使用しているユーザーは、VBAの基本的な概念を理解しやすいですし、VBAに関する書籍、オンラインコース、チュートリアルが豊富に存在するため、学習しやすい環境が整っています。
ノンプログラマー向けの書籍やWebサイトも豊富にありますので、ノンプログラマー向けに必要な知識は比較的集めやすいです。
小規模で閉じた環境での即効性
小規模で閉じた環境で、繰り返し業務がExcelベースで行われているなら、最も早く・手軽に成果が出せるのがVBAです。
Excel操作を繰り返す業務なら、一度覚えるだけで何十時間もの作業を削減できます。
VBAが向いているのは、事務作業やルーティンが多い部署にいる人、Excel業務の時間を削減したいと思っている人、周囲の人に役立つ仕組みを作るのが好きな人、細かい調整や修正が苦にならないタイプです。
つまり、今の業務に活かせる場があることが最大の動機になるのです。
ここまでやめとけと言われる理由を紹介してきましたが、VBAがまったく不要というわけではありません。
むしろ、条件次第では今でも非常に強力な武器になります。
3.VBAエンジニアのキャリアと年収の実態

VBAエンジニアの年収相場と給与実態
VBAエンジニアの年収は全体の平均年収と比べると高いですが、会社によっては相場より低い場合があります。
VBAフリーランス案件の特徴としては、製造業において業務プロセスや生産性を可視化・シミュレーションする目的でVBA開発を行う案件や、介護業界においてDX・RPAを推進する開発案件、広告代理店における営業サポートの案件などがあります。
具体的にはレポート・マニュアルや見積書といったドキュメント作成を担当し、資料作成やレポーティングにあたっては、Excelの関数スキルやマクロ・VBAといったスキルも必要です。
VBA資格を取得することで、自分のVBAプログラミングスキルが第三者によって認められたものと証明できます。
特にVBAエキスパートなどの資格は、ExcelやAccessに関するVBAの知識と技術を公式に証明し、そのスキルのレベルを客観的に示せます。
多重請負構造による収入格差の問題
特に多重請負構造の末端の開発企業に雇われると、給料は低くなることが多いです。
請負構造とは、発注者が業務の一部を下請け会社に委任する構造を意味します。
下請け企業が更に別の下請け企業に業務を委ねることで、単価は次第に低下し、その結果として給料が減少する状況が発生します。
三次請け以降の企業に入ってしまうと、VBAエンジニアでも年収が低くなるため、やめとけと言われることが多いです。
企業によっては残業が長い場合もあり、客先常駐が多く人間関係で孤立する可能性や、クライアントに振り回されやすい、トラブル対応がつらいといった問題もあります。
やめとけと言われる一方、VBAエンジニアは給与の高さや働き方の自由さから、人気な職業であることも間違いありません。
VBAスキルだけでは収入を得にくい現実
VBAの仕事は現在もあるものの、それだけで十分な収入を得るのは難しい可能性があります。
業務のRPA・自動化の仕事は数多くあるものの、近年はPythonやJavaScriptが用いられるケースが多く、VBAスキルだけで対応できる案件数はそれほど多くありません。
また、比較的手頃な料金で高性能なRPAツールも出回っているなか、高単価なVBA案件を探すことは難しい状況です。
そのため、VBAのスキルを活かすにしても、VBAのコーディングに加えて業務フロー設計も提案できるようになる、他のプログラミング言語や業務システムとの組み合わせでスキルを磨くといった付加価値作りが重要と言えます。
プログラミング言語のなかでも、VBAは比較的ニッチな領域に位置付けられます。
PythonやJava、JavaScriptといった汎用的な言語と比べると、VBAの専門知識・スキルを持つエンジニアの数は多くありません。
将来性と需要の見通し
VBAは将来性があるプログラミング言語といわれています。
その理由としては、VBAを習熟している人が少ないことや簡単にシステム開発ができることが挙げられます。
また、Office製品を導入している企業が多いことも将来性がある理由の一つです。
世界中の企業に最も普及しているビジネスツールであるOffice製品が廃れない限り、VBAの需要もあり続けるでしょう。
多くの企業で、無駄な事務作業等を排除する動きが強まっています。
作業を効率化して業務を早くこなし、プライベートの時間を確保している人も増えているでしょう。
そして特に事務作業の効率化にはVBAが欠かせません。
4.VBAの代替案と次のステップ

Google Apps Script(GAS)への移行メリット
G Suiteメインの職場なら、Google Apps Scriptが良いですね。
スプレッドシートはもちろん、GmailやGoogleカレンダー、フォーム、ドキュメントなどよく使うアプリケーションを操作可能です。
また、GASはクラウド環境にあるので、HTTP通信を使ってSlackやChatworkなど他のAPIを提供しているサービスとの連携が得意です。
GASのプログラミング言語はJavascriptで、Javascriptはエンジニアの仕事でも利用する機会が多く、非常に汎用性が高いプログラミング言語でもあります。
従来、業務ソフトではMicrosoft Officeアプリケーションが主流でしたが、近年ではGoogleドライブなど、クラウドベースの業務ツールも人気です。
特にGoogleドキュメント・スプレッドシートは、共同編集機能とGoogle Apps Script(GAS)による自動化が可能で、VBAを使わずに多くのタスクを自動化できます。
Pythonによる業務自動化の可能性
Webスクレイピングや、csvのデータ処理が多いならPythonがいいかもしれません。
いずれもVBAでできないことはないですが、Pythonのライブラリを使ったほうがスマートにできることが多いです。
Pythonは現在、全言語の中でトップクラスの勢いを誇っています。
AIや機械学習と相性が良く、かつ汎用性が高いからですね。
VBAはExcelの自動化や軽めのデータ管理以外に使われることはそれほど多くありませんが、Pythonはできることが幅広いです。
VBAはExcelやAccessの自動化に適しているものの、大量のデータを処理するには限界があります。
大量データを扱う業務では、VBAよりもPythonのPandasライブラリやSQLデータベースを活用する方が安全かつ効率的と言えます。
Power AutomateなどのRPAツール活用
VBAは自動化プログラムを作成するのに便利ですが、最近では高性能なRPAツールが数多く登場しており、必ずしもVBAでプログラムを構築する必要がなくなってきています。
例えば、経理業務であればクラウド型の会計ソフトが充実しており、販売管理や人事管理なども専用のSaaSツールが提供されている状況です。
企業のDX(デジタルトランスフォーメーション)が進むにつれ、SaaS(Software as a Service)型の業務アプリが充実し、ローカル環境に依存しないクラウドベースのツールが選ばれる傾向にあります。
その結果、VBAを活用する機会が徐々に減っていく可能性もゼロではありません。
マクロは非常に便利な機能のひとつですが、技術発展が著しい現代社会においては賞味期限が短く、業務の属人化やマクロウイルスへの感染といったリスクも抱えています。
マクロの代用品として、RPAなど専門システムを代替導入する企業も増えつつあります。
VBAを通過点として他言語へステップアップする戦略
VBAやめとけと言ってる方は、多分ですが、VBAを学習するより、他の言語を学習したほうが、発展性があるから、勉強コストもったいないよということだと思うんです。
なので、VBAやめとけってことはなく、VBAを通過点にして、他のプログラミング勉強してみようぜって僕は思ってます。
VBAで学んだことは次のプログラミング言語で使えるのです。
というのもプログラミングの枠組み自体は同じなので、次に勉強するプログラミング言語の特別な部分だけを勉強すれば、次のプログラミング言語をマスターすることが出来ます。
VBAを勉強すればJavaやC言語で躓くことなくスラスラと理解することが出来ます。
どちらのプログラミング言語も記述方法は異なりますが、条件分岐や変数といったプログラミングの基本的な考え方は同じです。
そのため、どちらか一方をある程度習得しておけば、新たなプログラミング言語を学習することはそれほど難しいことではありません。
まとめ
この記事では、VBAがやめとけと言われる理由と、現実的な活用法について解説しました。
- VBAは1990年代の技術で時代遅れと指摘されることが多い
- セキュリティリスクとマクロウイルスの脅威が存在する
- 開発効率が悪く、保守性が低いという問題がある
- 会社で評価されにくく、汎用性も低い
- しかしExcel業務の自動化には今でも最適なツール
- 環境構築不要で導入ハードルが低いメリットがある
- 非エンジニアでも習得しやすい学習コストの低さがある
- VBAスキルだけでは収入を得にくい現実がある
- GAS、Python、RPAツールなどの代替案が充実している
- VBAを通過点として他言語へステップアップする戦略が有効
VBAはやめとけという言葉に惑わされず、まずは自分の目的や業務にとって必要なことを考えましょう。
必要ならVBAを使えばいいし、他に合うものがあれば移行すればいい。
あなたのキャリアにとって最適な選択をしてくださいね。
関連サイト: Microsoft Office サポート






Leave a Reply