せっかく作ったVBAツールを社内展開したら、誰も使えなかった話|「VBAをなくす方が早い」という結論に至るまで

1ヶ月半かけて人事転記システムを完成させた。Excelのボタンを押すだけで、定型業務が自動で走る。自分のPC上では完璧に動く。これなら10人の同僚に配布すれば、みんなの業務時間が削減されるはずです。そう思ってツールを配った瞬間、地獄が始まった。

マクロ有効化ダイアログ。ActiveXエラー。信頼済みの場所。次々と出てくる設定画面。1人あたり10分から30分、説明と設定の繰り返し。同じ説明を10人に繰り返していると、ふと気づく。開発にかけた時間より、サポート時間の方が圧倒的に大きい。その時点で「VBAを教えるより、VBAをなくす方が早い」という。ある種の開き直りに近い発想に至った。

完璧は幻想、他PCでの問題連鎖

まず、自分のPC上では何の問題もなく動く。だからツールは完成していると思っていた。実際にはそれはファンタジーだった。完璧に動くことと、別の誰かのPCで動くことは、全く別の問題です。

それに気づいたのは、初めの数人に配布したときです。社内で別会社の人事部門から10人が対象だった。30名の大きなグループの中の、別会社という位置づけ。ちょうど良いテスト対象だと思った。配布から30分後、メッセージが来た。「使えません」「どこをどうするんですか」。

Excelのマクロ有効化セキュリティ警告ダイアログ

マクロ有効化ダイアログが出て、Excelが止まっているらしい。説明すると次はActiveXエラー。設定で解決すると、その次は信頼済みの場所を設定しろという指示が出る。一つ解決すると、次の障害が待っている。この連鎖は、自分のPCでは一度も経験していなかった。

マクロやActiveXが動かない時の設定

次に、説明の内容は毎回ほぼ同じ。マクロ有効化ダイアログが出たら「このボタンを押してください」。ActiveXエラーが出たら。Excelの設定画面を開いて「セキュリティセンターのここをいじります」。信頼済みの場所に登録するなら「ファイルを置くフォルダを指定する」。

相手は非エンジニア会社員です。Excelの設定画面なんて見たこともない人たちです。

チャットでの尽きぬエラー対応

VBAのActiveXコントロール実行時エラー画面

やり取りはLINE WORKSのチャットで行われた。「読み込みボタンを押しても反応しない」「ツールが使えない様です」——そういうメッセージが届く。次の瞬間、エラー画面のスクショが貼り付けられる。それを見て、何が起きているか診断する。「ActiveXが無効になっています。

Excelの左上のファイル→オプション→トラ

ストセンター→トラストセンターの設定→マクロの設定・ActiveXの設定ともにチェックボックス一番下を選んでOKを押してください」。そういう指示をチャットに打ち込む。

一方で、相手はそれを読みながら画面を操作する。しばらく待つと「できました」か「次は〇〇が出てきました」のどちらかが届く。後者の場合、また別の指示を打ち込む。マクロ有効化の次はActiveXエラー、その次は信頼済みの場所の設定。連鎖は終わらありません。

VBAツールの普及を阻む壁

マクロの解除手順をPDFにまとめて送ったこともある。それでも「上書きできませんでした」「中身を全部消してしまいました」という返信が来る。チャットで文字だけ伝えることの限界がここにある。画面を直接見られない状況で、見たことのない設定画面を操作してもらうのは。思っている以上に難しい。

1人10分ですむ人もいれば、30分かかる人もいる。同じ説明をしているのに

Excelトラストセンターの信頼できる場所設定画面

そのため、1人10分ですむ人もいれば、30分かかる人もいる。同じ説明をしているのに。総計で5時間から8時間が消えた。開発には1ヶ月半かけた。そのツールを10人に使わせるための時間が。1週間もたたないうちに5〜8時間に達した。

VBAツールが動かない、セキュリティの壁

VBAツールが自分のPCで問題なく動いても。他人のPCでエラーを吐くのは珍しくない。多くの開発者は「バグはない」と確信しているだろう。だが。それは開発者のPC環境が「たまたまVBAを動かすのに適した状態」だったに過ぎない。他人のPCではExcelのバージョン、セキュリティ設定、OS環境など。さまざまな要因が複雑に絡み合ってVBAの実行を阻害する。

この原因を理解しないままツールを配布すれば、社内は混乱に陥るだけです。

最も一般的な障壁は、Excelのセキュリティ設定に起因する。ExcelにはマクロやActiveXコントロールといったプログラムが仕込まれたファイルを開く際。悪意あるコードからPCを守るための機能がデフォルトで備わっている。これが「マクロ有効化」や「ActiveXの警告」として現れる現象の正体です。多くの会社員にとって。セキュリティに関するダイアログは意味不明な警告にしか見えない。

彼らは「危険」という文字を見て、触れてはいけないものだと直感的に判断する。だからツールが動かなくても、安易に設定を変更しようとはしありません。

マクロ設定のジレンマ

しかし、Excelの「セキュリティセンター」には。「マクロの設定」と「ActiveXの設定」という項目がある。初期設定では「警告を表示してすべてのマクロを無効にする」や「マクロを無効にする」といった安全側の設定になっている場合が多い。これは、見慣れないマクロ付きファイルを開いた際。ユーザーが意図せずウイルス感染するリスクを避けるためです。

しかし、これが善意で作成された社内VBAツールの足かせとなる。ツールを使うには。設定を「すべてのマクロを有効にする」や「警告なしですべてのActiveXコントロールを有効にする」に変更する必要がある。だが、この変更はセキュリティレベルを下げる行為であり、本来は推奨されありません。

信頼済み場所設定の障壁

さらに「信頼済みの場所」の設定も重要になる。信頼済みの場所とは。特定のフォルダに保存されたExcelファイルのマクロであれば。セキュリティ警告なしに実行を許可する仕組みです。もし会社の共有フォルダを信頼済みの場所に登録しておけば。そこに置かれたVBAツールは警告なしに動くようになる。しかし、この設定もPCごとに手動で行う必要がある。企業によっては。

セキュリティポリシーで個人のPCが信頼済みの場所を設定することを制限している場合もある。この一連のセキュリティ設定は。PCの知識がない社員にとって極めてハードルが高い作業です。彼らは自分のPCに何か問題が起きることを恐れ、設定変更をためらう。結果、開発者がどんなに丁寧な説明をしても、同じ箇所でつまずく人が続出する。これが「1人10分ですむ人もいれば。30分かかる人もいる」という現象の背景にある。

マクロ有効化やActiveXエラー、そして信頼済みの場所の設定は。それぞれ独立した障壁ではなく。セキュリティという一枚岩の壁を構成する要素なのです。

💡 ここで一度立ち止まって考えてみてください

PythonやExcel自動化スキルを持ったまま、ITエンジニアとして転職したい方には「EBAエデュケーション」が選択肢です。企業が求めるエンジニア像に合わせたカリキュラムで、実務直結のスキルを習得できます。

ITエンジニア転職・EBAエデュケーション →

VBAの隠れたコスト:心理的負担と機会損失

「完璧に動く」と「みんなが使える」は別の話だったに関する解説図(日本語UI)

VBAツールを社内展開した際、開発者が経験する目に見えるコストは。ツール開発時間とユーザーサポート時間です。しかし、それ以外にも「VBAをなくす方が早い」という結論を導き出すほど。見過ごされがちな隠れたコストが多数存在する。これらの隠れたコストは、短期的な業務効率化の恩恵をはるかに上回り。結果的に組織全体の生産性を低下させる要因となる。

まず、ユーザー側の「心理的コスト」は計り知れない。エラーメッセージに直面した非エンジニアは、動かないツールにストレスを感じる。ITが苦手な社員は「またITで問題が起きた」と苦手意識をさらに強め。自信を失う可能性もある。業務を自動化するはずが、かえって彼らの負担を増やし。業務へのモチベーションを低下させてしまうのです。彼らがエラー画面のスクリーンショットを送り、返信を待つ時間も。

本来の業務から引き離される「機会損失」です。

VBAツールの負債化とセキュリティリスク

次に、「属人化のリスク」と「保守性の問題」が浮上する。VBAツールは、ほとんどの場合、作成者一人のスキルと知識に依存する。開発者が異動したり退職したりすれば。ツールの改修やトラブルシューティングは困難になる。引き継ぎが行われたとしても、VBAのコードを理解し。メンテナンスできる人材は限られる。結果として、古いツールが誰も手を出せない「ブラックボックス」と化し。会社の負債となるケースも少なくない。

業務の変化に対応できず、結局は手作業に戻る、といった事態も発生する。

さらに、「セキュリティリスク」も無視できない。前述のように。VBAツールを使うためにセキュリティレベルを緩和せざるを得ない場合がある。これは、悪意あるマクロが社内ネットワークに侵入する隙を与えかねない。IT部門がこれを看過すればガバナンス上の問題となり。厳しく制限すればツールの利用が不可能になるというジレンマに陥る。

VBAマクロの落とし穴

さらに、これら多くの要素を総合的に考えると。VBAツールによる一時的な業務効率化は。多くの隠れたコストを伴う「諸刃の剣」であることが明らかになる。開発者はサポートに時間を奪われ、利用者はエラーで混乱し。会社全体としては属人化やセキュリティリスクを抱える。結果として、開発にかかるコスト、ユーザー教育やサポートにかかるコスト。そして将来的な保守にかかるコストを合計すると。

「VBAをなくす方が早い」という結論は、非常に合理的な判断となるのです。Excelマクロは手軽に始められるがゆえに。その裏に潜むリスクとコストが見えにくい。

VBAの壁と業務改善の葛藤

VBAのサポート地獄を経験し、「VBAをなくす方が早い」とまで考えたものの。やはり業務効率化の必要性は変わらないままでした。せっかく時間と労力をかけて自動化した業務を、また手作業に戻すなんて。想像するだけで途方に暮れてしまいました。自分のPCで動くツールがあるのに、みんなが使えないという状況は。まるで宝の持ち腐れのように感じられました。

このままではいけない、でもどうすれば良いのか。という葛藤が常に頭の中にありました。同僚たちに迷惑をかけ、自分も疲弊するばかりの状況を。何とか打開したいと強く思っていました。社内のIT部門に相談することも一瞬頭をよぎりましたが。専門外の私がどこから話せば良いのか、そもそも相手にしてもらえるのか。という不安が先行してしまい、結局声をかけることはできませんでした。

完璧より活用、VBAがくれた気づき

まず、「完璧に動く」という自分の基準と。「みんなが使える」という現実のギャップに直面し。VBAという技術の限界を痛感した瞬間でもありました。手軽に始められるVBAは。私のようなプログラミング未経験者にとって魅力的なツールでしたが。その「手軽さ」の裏に。このような大きな落とし穴が潜んでいるとは思いもしませんでした。

この経験を通して、私は「技術そのもの」よりも「その技術をどのように活用し。みんなに届けられるか」という視点の方が、はるかに重要だと気づかされました。どんなに素晴らしいツールを作っても、使う人がいなければ意味がないのです。この気づきが、私の次のステップへの大きな原動力となりました。

VBAの限界とPythonとの出会い

VBAの限界を感じた私は、インターネットで新しい自動化の手段を探し始めました。「Excel自動化 VBA 以外」「プログラミング 初心者 事務職」といったキーワードで検索を繰り返す日々でした。プログラミングなんて、自分とは全く縁のない世界だと思っていましたので。最初は漠然とした不安しかありませんでした。

次に、そんな中で。繰り返し目にするようになったのが「Python」というプログラミング言語の名前でした。最初は「パイソン?蛇?」という程度の認識で、全くピンと来ませんでした。しかし、検索結果を読み進めるうちに。PythonがExcelの自動化にも使えること、そしてVBAよりも汎用性が高く。様々な分野で活用されていることを知りました。

Pythonとの出会い、可能性への決意

VBAではExcelの内部でしか完結できませんでしたが。PythonはExcelだけでなく、Webスクレイピングやデータ分析。さらにはAIの開発までできるという情報に、私は大きな可能性を感じ始めました。これはVBAで苦労したような、特定のPC環境に依存する問題や。セキュリティ設定の壁を乗り越えられるかもしれない。という淡い期待が芽生えた瞬間でもありました。

もちろん、新しいプログラミング言語を学ぶことに対する不安は大きかったです。完全文系の事務職である私が、本当にプログラミングを習得できるのだろうか。という疑問が常に頭をよぎりました。VBAでさえ、独学で四苦八苦した経験がありますから、もっと本格的な言語となると。ハードルは計り知れないように感じられました。

一方で、それでも。「このままではいけない」「もっと多くの人に役立つツールを作りたい」という強い思いが。私の背中を押しました。VBAで得た「自動化の楽しさ」と「共有の難しさ」の両方を経験したからこそ。新しい技術への探求心が生まれたのだと思います。プログラミングの「プ」の字も知らなかった私が。Pythonという未知の世界に足を踏み入れようと決意した、まさにその瞬間でした。

関連リンクとチェックリスト

学習サービスとアンケート

このスキルを活かしてさらに前へ進むなら

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エンジョイテック) →