VBAはやめとけ、とか、オワコン、とか言われるけどホントにそうなの?
VBAは何かと「やめとけ」とか「オワコン」とか言われることがあります。
これは、他のプログラミング言語と比較して、というものが大半で、「VBAをやるぐらいなら○○○をやった方がいい」という言い方をされることがあります。
「VBAはやめとけ」「今さらVBA?」「VBAはオワコン」
ネット上ではこんな意見を見かけることがよくあります。
確かに、VBA(Visual Basic for Applications)は1990年代から存在する古い技術で、昨今のトレンドからは外れているといえるかもしれません。しかし、それだけで「VBA=ダメ」と決めつけてしまってよいのでしょうか?
果たして本当に「いまさらやる価値がない」のでしょうか?
この記事では、「なぜVBAが批判されるのか」「代替できる言語はあるのか?」そして「今、現場で本当にVBAをやめるべきなのか?」を冷静に整理してみたいと思います。
VBAはやめとけ、と言われる理由
なぜVBAはやめとけ、と言われているのかを見てみると、以下のような意見が挙げられています。
1. 技術的に古い
VBAはMicrosoft Officeに組み込まれているスクリプト言語ですが、その構文や機能はVisual Basic 6.0時代をベースとしており、最新のプログラミング言語と比べるとやはり物足りなさはあります。IDEも貧弱で、補完機能やエラーチェックも最小限です。
2. 保守性・再利用性に乏しい
VBAのコードがExcelブックに含まれているため、バージョン管理や他のプロジェクトへの流用が難しいことがあります。また、セキュリティ設定によってはマクロの実行が制限されるため、配布先で動かないというケースもあります。
3. 他言語に比べると学習コストが高く感じられる
VBAにはExcelなどOffice独自の文法があり、PythonやJavaScriptに比べると入門しにくい印象を与えることがあります。事務に携わる方でVBAを活用している人は結構見かけますし当ブログにも質問がくることがありますが、逆にIT技術者でも「VBAは苦手」「できません」と言う人が結構います。
4. Excelよりも他のサービスがよい
Excelよりもクラウドサービスを使った方がいい、ということから、VBAは廃れるのでやめておけ、という意見があります。
それでもVBAが必要な実務的な理由
VBAのサイトをやっているのでVBAは便利ですよ、という内容になるのは当然と言えば当然なのですが、VBAは捨てない方がいい理由がいくつかあります。
1. Excelとの親和性は圧倒的
Excelの操作を自動化するという一点において、VBAの右に出るものは今のところ存在しません。マクロの記録機能と組み合わせれば、プログラミング初心者でもある程度の自動化が可能です。PythonでExcelを操作することも可能ですが、VBAの方が簡単なことが多く、VBAでしか対応できないことも少なくありません。そのため無理にExcelをPythonで操作する必要ない、というのが個人的な感想です。ちなみに私は他の用途でPythonを使っています。
2. オフラインで動作・環境構築不要
VBAはExcelさえ入っていれば、すぐに実行できます。外部ライブラリのインストールも不要で、業務PCに制限がある環境でも扱えるのは大きな利点です。私がVBAを好むのもこの点が大きいです。
3. 非エンジニアでも学べる
業務でExcelを日常的に使っている方にとって、VBAは比較的入りやすい自動化ツールです。実際、VBAによって業務時間を大幅に短縮した例も多く存在します。
4. Excelを使っている現場は多い
今ではクラウドサービスでいろいろ提供されていますが、それでもローカルPCでの作業は圧倒的にExcelで行われることが多いのが現状です。Excelで作成した資料を活用するためにVBAは強力です。
5. 他のプログラミング言語と比較することにそもそも意味がない
VBAはExcelを便利に使うための道具です。それなのに「PythonやC#と比べて~」などというのは、子供に向かって「三輪車はオワコン。リニアモーターカーに乗れ」と言ってるようなもので、なんで他のと比べる必要があるんだろう? と思います。
VBAの代替案と、それぞれの課題
VBAを他に置き換える、という場合に、実際に以下のような選択肢があります。ただ、それぞれ課題があります。
代替技術 | 特徴 | 課題 |
---|---|---|
Office Script | JavaScriptベース。Excel Online専用で比較的新しい | ローカルのExcelでは使えない。機能が限定的 |
Power Automate | ノーコードツール。UI操作で自動化できる | 複雑なロジックには不向き。有料プランが必要なケースも |
Python + openpyxl / pandas / xlwings | 柔軟性が高い。Excel以外のデータ処理も得意 | Python環境構築が必要。非エンジニアにはハードルが高い |
Google Apps Script | Googleスプレッドシート用。JavaScriptライクな文法 | Microsoft Excelとは完全に別世界。データの互換性なし |
このように、どれも一長一短であり、「VBAの完全な代替」とは言い切れません。特に企業内で広く使われている既存のExcel資産を置き換えるには、相当のコストと手間がかかります。
結論:VBAは「やめなくてもいい」。でも、未来も見据えよう
確かにVBAは時代遅れと言われる側面があります。しかし、現実の業務では 「すぐに置き換えられるほど簡単ではない」 のもまた事実です。
ですので、「VBAだからダメ」と決めつけるのではなく、現在の業務に最適なツールかどうかを見極める、将来のために他の選択肢も学んでおく、といった柔軟な姿勢が大切です。
「VBAはやめとけ」という言葉に惑わされず、まずは自分の目的や業務にとって必要なことを考えましょう。必要ならVBAを使えばいいし、他に合うものがあれば移行すればいい。ただそれだけの話です。
もし、あなたが今VBAを使って業務を効率化しているなら――それは立派な成果です。焦らず、少しずつ未来を見据えていきましょう。