「VBAはもうやめとけ」「VBAだけやっていても評価されない」といった言葉を目にして、不安になっている方は多いと思います。
実際、「vba やめとけ」と検索すると、時代遅れ・属人化・セキュリティリスクなど、ネガティブな情報が数多く並びます。
一方で、今でも多くの現場でVBAは使われており、Excel業務の自動化には非常に強力な手段であることも事実です。
本記事では、
なぜ「VBAはやめとけ」と言われるのか(主な3つの理由)
それでもVBAが有効なケースと、やめた方がよいケース
VBAとPython・Power Automateなど代替ツールの現実的な比較
怒られない・嫌われないVBAの使い方とリスクの抑え方
を整理し、「自分はVBAをやめる・続ける・並行するのか」を判断できる状態を目指します。
VBAそのものを完全に肯定・否定するのではなく、「あなたの目的と環境に合った付き合い方」を一緒に整理してまいります。
※本コンテンツは「記事制作ポリシー」に基づき、正確かつ信頼性の高い情報提供を心がけております。万が一、内容に誤りや誤解を招く表現がございましたら、お手数ですが「お問い合わせ」よりご一報ください。速やかに確認・修正いたします。
VBAが「やめとけ」と言われる背景には、属人化しやすい点、セキュリティリスクの高さ、そして将来的なキャリアの不確実性という三つの要因がございます。しかしながら、Excel業務を中心とする現場では、VBAは依然として有効な自動化手段であり、特に短期的な業務効率化という観点では大きな効果を発揮いたします。重要なのは、VBAを全面的に否定するかどうかではなく、ご自身の目的・職場環境・将来のキャリア方針に応じて「どの範囲まで活用するか」を適切に決めることでございます。
また、VBAを学ぶ過程で身につくロジック思考や自動化の基礎は、Pythonやノーコードツールなど今後のキャリア形成に役立つスキルにもつながります。さらに、社内ルールを順守し、仕様書やコメントを整備することで、属人化やトラブルを防ぎつつ、周囲からの信頼も得やすくなります。このような工夫により、「怒られるVBA」ではなく「評価される業務改善」として活かしていくことが可能です。
VBAの基礎知識と現在地
VBAとは何か?どこで使われているのか
VBA(Visual Basic for Applications)は、Microsoft Office製品(Excel・Access・Wordなど)に組み込まれているプログラミング言語です。主にExcelのマクロ機能を通じて、繰り返し作業の自動化や業務ツールの作成に使われています。
特徴としては、次のような点が挙げられます。
Excelの画面上でコードを書けるため、導入コストが低いこと
GUIで「マクロの記録」から始められ、非エンジニアでも取っつきやすいこと
既存のExcelファイルに手を加えるだけで、自動化ツールを作成できること
このように、「Excelをよく使うが、本格的なプログラミング経験はない」という方にとって、VBAは身近な自動化手段となっています。
今も現場でVBAが使われ続けている理由
「VBAは時代遅れ」と言われながらも、現場では今なお広く使われています。その主な理由は以下の通りです。
多くの業務がそもそもExcel前提で設計されており、VBAが一番早く効果を出せる
既に社内に多くのVBAマクロ資産があり、完全に捨てて置き換えるのが難しい
外部システム導入と比べ、個人や小チームで完結できる自動化手段である
つまり、「新しく大規模なシステムを作るなら別の選択肢が良いかもしれないが、今あるExcel業務を素早く自動化したい」という場面では、今でもVBAは現実解のひとつです。
Microsoftがマクロを制限するようになった背景
一方で、Microsoftはマクロに対して厳しい姿勢を取るようになっています。特に近年は、
インターネットから入手したOfficeファイル内のマクロを既定でブロックする
マクロを悪用したマルウェア・ランサムウェア対策を強化する
といった仕様変更が行われています。
背景としては、メール添付ファイルやダウンロードファイルに仕込まれたマクロが、マルウェア拡散の手段として多用されてきたことがあります。
こうした動きから、「マクロ=危険」「VBAはやめた方がいい」というイメージが広がりやすくなっている側面があります。
「VBAはやめとけ」と言われる主な3つの理由
理由1:属人化しやすく、引き継ぎや保守が難しい
VBAが嫌がられる最大の理由のひとつが「属人化」です。
よくある状況として、次のようなパターンが見られます。
一人の担当者が独学でマクロを組み、仕様書もコメントも残していない
その人が異動・退職すると、誰もコードを読めず、業務が止まってしまう
バグが出ても直せる人がおらず、「VBAのせいで大変な目にあった」という印象だけが残る
コードが整理されておらず、コメントや設計書もない状態では、他人から見ると「謎のブラックボックス」にしか見えません。その結果、「VBAはやめとけ」「マクロ禁止」といった極端な判断につながりやすくなります。
理由2:セキュリティリスク(マクロの悪用とブロック強化)
マクロ(VBA)は、悪意ある攻撃者にとっても便利なツールです。メール添付のExcelファイルにマクロを仕込めば、ユーザーが開くだけで不正なコードが動作してしまう可能性があります。
企業の情報システム部門から見ると、
マクロを許可するとマルウェア侵入のリスクが増える
各ユーザーがどのようなマクロを使っているか、完全に把握しにくい
といった事情があります。そのため「原則マクロ禁止」「例外的に申請制で許可」といった運用が採用されるケースが増えています。
理由3:プラットフォーム依存と長期的なキャリアリスク
VBAは基本的にWindows版のMicrosoft Office上で動作するため、強くプラットフォームに依存します。
Webアプリケーションやクラウドサービス主体の時代に適応しにくい
Macやモバイル環境では制限が多い
将来的にOfficeの仕様変更やサポート方針に左右される
といった性質から、「VBAだけにキャリアを賭けるのはリスクが高い」と言われることがあります。
VBAが危険になりやすいケースチェックリスト
以下の項目に多く当てはまる場合、「VBA一本足打法」は確かに危険度が高くなります。
業務のメインシステムをExcel+VBAで無理に構築している
VBAコードが長く複雑なのに、仕様書・コメントがほとんどない
マクロの作者が1人だけで、後継者を育てていない
情報システム部門や上司と相談せず、勝手にマクロを量産している
インターネットからダウンロードしたマクロ付きファイルを頻繁に開いている
当てはまる項目が多いほど、「VBAをやめるかどうか」ではなく、「使い方を改める・役割を縮小する」必要性が高い状態といえます。
それでもVBAが「やめなくてもいい」ケース
Excel中心で完結する業務の自動化
一方で、次のようなケースでは、VBAは今でも十分な価値があります。
売上集計・請求書作成など、Excelベースの定型処理
毎週・毎月同じ形式のレポートを作成する作業
複数のExcelファイルをまとめて加工・マージする処理
このような「Excel内で完結する自動化」は、VBAが最も早く効果を出せる領域のひとつです。
個人業務の効率化やプロトタイピング用途
社内ルールに抵触しない範囲で、自分だけの作業を効率化するツールとしてのVBAも有効です。
自分のPC上だけで使う、補助的なスクリプトやツール
新しい業務フローの試作品(プロトタイプ)を素早く作る
将来的に他システムに置き換える前段階の検証ツール
など、「本番システム」ではなく「下書き」や「個人の作業効率化」と割り切る使い方であれば、リスクも限定しやすくなります。
VBAで身につく思考は他でも活きる
VBAを学ぶ過程で身につくのは、単なる文法知識だけではありません。
処理手順を分解して、順序立てて考える力
エラーの原因を切り分け、仮説検証する力
データを構造化して扱う力
といった「自動化・ロジカルシンキング」の基礎は、Pythonなど他の言語や、RPA・ノーコードツールにもそのまま活かせる汎用スキルです。
その意味で、「VBAに触れること自体が完全な無駄」というわけではありません。
【決め方】あなたはVBAを「やめる・続ける・並行する」どれが正解か
STEP1:自分の職種・キャリア目標を棚卸しする
最初に、次の2点を書き出してみてください。
現在の職種・業務内容
例:営業事務、一般事務、経理、人事、情シス、社内SE など
3〜5年後にどのような働き方をしたいか
例:事務職として現場の業務改善を極めたい
例:エンジニアやデータ分析職として転職したい
この時点で、大まかな方針は次のように分かれます。
一生エンジニアとして開発をしたい
→ VBAは「入口」として割り切り、早めに他言語(Python / JavaScriptなど)に重心を移す事務職として、現職の中で業務改善を進めたい
→ VBAは実用的な武器になるが、「VBAだけ」に頼りきらないよう設計する
STEP2:会社ルール・セキュリティ方針を確認する
次に、社内のルールや運用方針を確認します。具体的には、以下のような点です。
情報システム部門や上司に「マクロ利用ルール」があるか確認する
マクロ付きファイルがメール添付でブロックされるかどうかを確かめる
過去にマクロが原因のトラブルやセキュリティ事故がなかったかを聞いてみる
もし「原則禁止」「事前申請が必要」といったルールが明確にある場合は、それに従う必要があります。そのうえで、
個人業務の範囲でのみ使う
仕様書を残してチームで共有することを前提に使う
といった形に調整していくのが現実的です。
STEP3:VBAの学習深度と役割を決める
最後に、「自分はVBAをどのレベルまでやるのか」を明確にします。目安として、以下の3段階に分けて考えると整理しやすくなります。
レベル1:マクロ記録+簡単な修正
マクロの記録機能で自動生成されたコードを少し修正できる
If文や簡単なループを使って、繰り返し処理を自動化できる
レベル2:小さなツールを設計・作成できる
処理を複数のプロシージャや関数に分割して設計できる
エラーハンドリングやログ出力など、少し踏み込んだ実装ができる
レベル3:部門横断ツール・社内システム級をVBAで作り込む
他部署をまたぐ大規模ツールをVBAで構築し、長期運用する
一般的な事務職であれば、レベル2までで十分なことがほとんどです。レベル3に踏み込むと、属人化や保守性の問題が一気に大きくなりますので、VBA以外の選択肢も合わせて検討すべき領域です。
職種×目的別 判断マトリクス(例)
| 職種 / 目的 | 短期方針 | 中長期方針 |
|---|---|---|
| 一般事務・営業事務(現職で頑張る) | VBAレベル1〜2まで習得 | Power Query・Power Automateなどを併用 |
| 経理・財務 | VBAで帳票自動化+関数強化 | 会計システムとの連携やSQLの基礎習得 |
| 情シス・社内SE | VBAは既存ツールのメンテ程度 | Python・PowerShell・クラウドスキル |
| エンジニア転職志望 | VBAは足がかり程度 | Python / JavaScriptなど本命言語を優先 |
VBAと代替・補完スキルの比較
VBA vs Python vs Power Automate vs Power Query 比較表
| 技術 | 主な用途 | 強み | 弱み・注意点 |
|---|---|---|---|
| VBA | Excel内の自動化 | Excelとの親和性が高い/導入が容易 | プラットフォーム依存/属人化しやすい |
| Python | データ処理・Web・自動化全般 | 汎用性が高く将来性も高い | 環境構築が必要/学習コストはやや高め |
| Power Automate | ノーコード業務フロー自動化 | クラウド連携が得意/GUIで操作しやすい | ライセンスコスト/複雑なロジックは苦手 |
| Power Query | Excel/Power BIのデータ加工・集計 | コードレスでデータ変形しやすい | 学習曲線があり、非エクセルユーザーには不向き |
VBAだけに依存するのではなく、これらのツールを組み合わせて使うことで、リスクを分散しつつ業務効率化を進めることができます。
事務職におすすめのスキル組み合わせ例
事務職・非エンジニアの方には、次のような段階的ステップをおすすめいたします。
第1段階:
Excelの関数・ピボットテーブル・Power Queryの基礎+VBAレベル1〜2第2段階:
Power AutomateやRPAツールなど、ノーコード自動化ツールを試してみる第3段階:
余裕が出てきたら、Pythonで簡単なスクリプトを触ってみる
このように段階を踏むことで、「今の現場で役立つスキル」と「将来も通用するスキル」を両立しやすくなります。
VBAから次のスキルへ進むロードマップ
VBAで業務フローを自動化し、「処理手順を分解する感覚」を身につける
同じ処理をPythonや別ツールでどう表現できるか、少しずつ試してみる
データベース(SQL)やAPI連携など、Excelの外側の世界にも触れてみる
この進め方であれば、「今の仕事で即効性のある改善」と「将来のキャリアの選択肢拡大」を同時に実現しやすくなります。
怒られない・嫌われないVBAの使い方
よくあるトラブル事例と原因
典型的なトラブルとして、次のようなものがあります。
業務改善のつもりでマクロを導入したら、「勝手にやるな」と上司に怒られた
周囲から「ずるい」「自分だけ楽している」と見られてしまった
マクロの不具合で他部署に迷惑をかけ、「VBAは危険」という印象が社内に広がってしまった
多くの場合、原因は単なる技術的ミスだけではありません。
事前共有・事前相談が不足していた
属人化への配慮や引き継ぎの準備が足りなかった
業務フローを勝手に変更したように受け取られた
といった、コミュニケーション面・運用面の問題が絡んでいることがよくあります。
属人化を防ぐためのドキュメント化・共有のコツ(チェックリスト)
VBAを使う際は、以下のチェックリストを意識することで、属人化リスクを大きく下げることができます。
コード内にコメントを入れ、「何をしているか」を簡潔に説明しているか
処理の流れを1〜2ページ程度の簡易仕様書にまとめているか
マクロを保存しているフォルダやファイル命名ルールをチームと共有しているか
自分以外のメンバーにも使い方をレクチャーし、「自分だけの秘密ツール」にしていないか
重要なツールについては、代替手段(手作業手順など)も用意しているか
会社と良好に付き合うための事前相談・ルール作り(チェックリスト)
会社や情報システム部門と良好な関係でVBAを使うために、次のポイントを押さえることが有効です。
マクロを作る前に、「こういう目的で自動化したい」と上司に相談しているか
既存システムや公式ツールで代替できないか、一度確認しているか
会社のセキュリティポリシーやマクロ利用ルールを必ず確認しているか
社内にマクロ利用に詳しい担当者がいれば、早い段階で相談しているか
これらを意識することで、「勝手に危険なことをしている人」という誤解を避け、「信頼できる業務改善担当」として見てもらいやすくなります。
よくある質問(FAQ)
今からVBAをゼロから学ぶのは無駄ですか?
Excel業務が多い職場であれば、VBAレベル1〜2(簡単なマクロ記録と修正)ができるだけでも、日々の残業削減に直結しますので、「完全な無駄」と考える必要はありません。
ただし、キャリアの柱にするのであれば、Pythonやクラウド系スキルなど、より汎用性の高い技術も並行して検討しておくと安心です。
VBAだけしかできないと転職に不利ですか?
VBA経験自体は評価されることも多いですが、「VBAしかできない」という状態だと、応募できるポジションは確かに限られます。
データの前処理・自動化の経験
業務改善の実績
といった形でVBA経験を棚卸ししつつ、SQLやPythonなど他の技術も少しずつ習得していくことで、転職時の選択肢を広げられます。
マクロがブロックされる環境でどうすればいいですか?
インターネットから入手したマクロ付きファイルは、既定でブロックされる仕様になっている場合があります。そのような環境では、
まず会社のセキュリティポリシーに従うこと
本当に必要なファイルか、送信元が信頼できるかを必ず確認すること
解除方法が認められている場合は、社内ルールや公式ドキュメントに沿って手順を踏むこと
が重要です。不明点があれば、自己判断せず情報システム部門に相談することをおすすめいたします。
職場でVBAを嫌がられる場合の対処法は?
技術的な正しさだけでなく、「周囲の安心感」が重要です。
仕様書とコメントを整えて、ブラックボックスにしない
事前に上司へ目的とメリット、リスク対策を説明する
他メンバーにも使い方を共有し、「自分だけが得をしている」という印象を減らす
といった工夫により、不信感や嫉妬を和らげることができます。
まずVBAとPythonのどちらから始めるべきでしょうか?
「今の職場でExcel業務をすぐ楽にしたい」
→ VBAを入口にしつつ、基礎だけしっかり押さえる「中長期的にエンジニア転職やデータ分析職を目指したい」
→ Pythonを主軸に据え、VBAはあくまで補助的に使う
という整理が現実的です。どちらか一方だけではなく、「短期的な効果」と「中長期的なキャリア」を分けて考えると判断しやすくなります。
まとめ:VBAを「やめる」のではなく、賢く付き合う
最後に、本記事のポイントを整理いたします。
「VBAはやめとけ」と言われる主な理由は、属人化・セキュリティ・キャリアリスクの3つです。
一方で、Excel中心の業務自動化や個人の効率化といった場面では、今でもVBAは強力な選択肢です。
重要なのは、「どこまでVBAでやるか」「いつ・何にバトンを渡すか」を決めておくことです。
VBAで身につくロジックや自動化思考は、Pythonやノーコードツールにも活かせる汎用スキルです。
社内ルールやセキュリティ方針を守りつつ、ドキュメント化・共有を徹底すれば、「怒られるVBA」から「評価される業務改善」に近づけます。
今日からできる具体的な一歩としては、
自分の職種と、3〜5年後のキャリア像を書き出す
社内のマクロ利用ルールやセキュリティポリシーを確認する
VBAをどのレベルまでやるか(レベル1〜3)を決める
余力があれば、Power QueryやPythonなど「次の一手」を少しだけ触ってみる
といったステップがおすすめです。