VBAツールを社内配布したら全員から『動かない』と言われた本当の原因は、配布経路にあった

これは、全社で利用する業務ツールをVBAで作成した際の体験談です。社内システムを経由して配布したときに、実際に起きた出来事をご紹介します。


本記事にはプロモーション(アフィリエイトリンク)を含みます。

M365移行後のVBAマクロ不具合

以前から、Excel VBAで作成した社内ツールを配布しておりました。その際は、ある設定をお願いするのが通例となっていました。トラストセンターのマクロ設定で、VBAマクロを有効化していただくことです。この設定さえしていただければ、ツールは問題なく動作しました。そのような運用が、社内ではずっと続いていたのです。

ところが、ある時期を境にして状況が一変しました。これまでと同じ手順を案内しても、「動かない」という声が届くようになったのです。そのような問い合わせが、社内で急増し始めました。時期としては、グループ全社で移行が進んでいた頃と重なります。Officeの永続版から、Microsoft 365への切り替えが行われていた時期です。Microsoft 365は、サブスクリプション型のサービスです。そのため、ユーザーが意識しないうちに設定が変わることがあります。セキュリティ設定が、自動更新によって変更されてしまう場合があるのです。

突然「動かない」が増えた背景

ずっと動いていたのに、突然動かなくなったに関する解説図(日本語UI)

「昨日までは動いていたのに、今日は突然動かなくなった」。このような現象は、自動更新が引き金になるケースが多いようです。設定が勝手に変わることで、マクロの動作が阻害されてしまいます。

しかも、この問題は一度解決すれば終わりというわけではありません。更新が行われるたびに、同じ内容の問い合わせが繰り返されました。その都度、LINE WORKSでメンションが飛んでくる状況です。「@担当者 ツールが動かなくなりました」という連絡が続きました。対応に追われる日々が、しばらく続くことになったのです。

イライラの原因、VBAツールの経路依存

正直に申し上げますと、当時は心に余裕がありませんでした。問い合わせが来るたびに、つい苛立ってしまうことがあったのです。「どうしてこんな簡単なことも分からないのだろう」と思ってしまいました。しかし同時に、自分自身に対しても怒りを感じておりました。不完全なツールを作ってしまったのは、開発者である私だからです。相手への苛立ちと自己嫌悪が、同時に押し寄せてきました。決して、心地よい状態ではなかったと記憶しております。


「昨日まで動いていたのに今日突然動かない」という現象はに関する解説図(日本語UI)

問い合わせへの対応を続ける中で、ある不思議なことに気づきました。それは、ファイルの受け取り方法によって動作が異なる点です。

社内のグループウェアは、「サイボウズガルーン」を利用しています。この社内回覧を経由して配布したツールは、なぜか動きません。一方で、LINE WORKSのチャットで直接送った場合はどうでしょうか。すると、全く同じファイルがそのまま正常に動くのです。この差がどこにあるのか、非常に疑問に感じました。

LINE WORKS経由のプロパティ差異

きっかけは、LINE WORKSでのやり取りでした。利用者の方との間で、話がどうしてもかみ合わなかったのです。私は、「プロパティを確認してください」と伝えました。そこには「他のコンピューターから取得したもの」という表示があるはずです。しかし、相手の方は「そのような表示は出ていません」と仰いました。そこで、互いにスクリーンショットを送り合って確認することにしました。すると驚くべきことに、確かに表示が出ていないことが分かりました。LINE WORKSで受け取り、ローカルに保存したファイルには無かったのです。

正直に言うと、問い合わせが来るたびに「こいつに関する解説図(日本語UI)

ファイルもPCも、操作している人もすべて同じ条件でした。唯一違うのは、ファイルを受け取った経路だけだったのです。


VBAが動かない謎:Zone Identifier

「条件は同じなのに、経路だけで動作が変わる」。この不可解な現象には、明確な理由が隠れていました。それは、Windowsがファイルを扱う際のセキュリティメカニズムです。普段はあまり意識することのない、特殊な仕組みが関係していました。その鍵を握っていたのが、「Zone Identifier」と呼ばれる情報です。日本語では「ゾーン識別子」とも呼ばれる特殊なデータのことです。

Windowsがダウンロードしたファイルに付ける目印

Windowsは、インターネットから取得したファイルに目印を付けます。それは、そのファイルが危険である可能性を判断するためです。これが、先ほど述べたZone Identifierという情報の役割です。ウェブブラウザを通じてファイルをダウンロードすると、この情報が付与されます。その出所が「インターネットゾーン」であると分類されるためです。

総務や経理のご担当者様なら、心当たりがあるのではないでしょうか。ダウンロードしたExcelを開く際、黄色いバーが表示されることがあります。「保護されたビュー」という警告メッセージです。そこで「編集を有効にする」をクリックするよう促されたはずです。この「保護されたビュー」こそが、Zone Identifierの付いた状態です。つまり、Windowsが「危険かもしれない」と警告を出しているのです。

Zone Identifierが付いたマクロは止められる

VBAマクロに関しては、Windowsのセキュリティ設定はさらに厳格です。Zone Identifierが付いたファイル内のマクロは、実行が制限されます。原則として、その動作は自動的にブロックされてしまうのです。たとえExcelの設定でマクロを有効にしていても、関係ありません。この識別子がある限り、マクロは「リスクがある」とみなされます。その結果、動作そのものを拒否されるケースが非常に多いのです。

これが、配布したツールが突然動かなくなった本当の理由でした。社内システムを経由して配布したことが、裏目に出ていたのです。

配布経路の差:Zone Identifierの有無

では、なぜ経路によって識別子の有無が変わるのでしょうか。社内システム経由では付き、LINE WORKS経由では付かない理由です。ここには、配布プロセスの大きな違いが関係しています。多くの社内グループウェアは、ブラウザを通じて利用します。ファイルをダウンロードする際、ブラウザの挙動が影響するのです。ダウンロード元がたとえ社内のサーバーであっても、関係ありません。ブラウザの判断により、「インターネットゾーン」から来たとされることがあります。

特に、グループ会社のサーバーを利用している場合に注意が必要です。あるいは、外部と連携したサービスを使っている場合も同様です。Windowsが、それらをインターネット上のものと誤解しやすくなるのです。

マクロが動かない!Zone Identifierの仕組み

こうしてダウンロードされたファイルには、識別子が付きます。その結果として、VBAマクロの実行が阻害されることになるのです。開発者がいくら「マクロを有効にして」と案内しても無駄です。根本的な原因は、ファイル自体に付与されたZone Identifierにあります。利用者の設定を変えるだけでは、この問題は解決できないのです。だからこそ、受け取った社員の方々は困惑してしまいました。「設定は変えたのに動かない」という声が、問い合わせの殺到につながったのです。

LINE WORKSとVBAマクロの仕組み

一方で、LINE WORKSなどのチャットツールは仕組みが異なります。これらは通常、デスクトップアプリとして動作しています。そのため、ファイルの送受信方法が一般的なブラウザとは違います。Webブラウザを経由する場合でも、OSとの連携方法が特殊なようです。その結果として、ファイルに識別子が付与されない傾向があります。ファイルがそのまま、信頼された状態でローカルに保存されるのです。

識別子が付いていないファイルは、Windowsに信頼されます。「安全な場所から来たファイル」であると、OSが判断するためです。トラストセンターでマクロが有効であれば、問題なく実行されます。経路を変えるだけで動くという謎の答えは、ここにありました。すべては、識別子があるかないかという一点にかかっていたのです。

配布トラブルで痛感したこと

この仕組みを知らないと、開発者は原因の特定に苦労します。自分のPCでは動くため、何が起きているのか把握できません。問い合わせが来るたびに、イライラと自己嫌悪が募ってしまいます。配布先の環境で何が起きているのか、正しく理解しましょう。Windowsのセキュリティの仕組みを知ることが、解決の第一歩です。

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

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

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

VBAツール安定配布対策

原因がZone Identifierにあると判明すれば、次は対策です。この問題をどのように回避し、安定した配布を実現するかを考えます。問い合わせ対応に追われる日々から、一刻も早く抜け出しましょう。そのために、いくつかの具体的な対策を講じる必要があります。開発者としても、利用者にとっても、ストレスのない運用を目指すべきです。

LINE WORKSで送ったら動いた(謎の発見)に関する解説図(日本語UI)

マクロ実行を確実にする対策

最も確実な対策の一つは、特定の場所を活用することです。Excelには「信頼できる場所」という設定項目が存在します。ここに登録されたフォルダ内のファイルは、特別扱いされます。Zone Identifierの有無に関わらず、チェックが緩和されるのです。その結果として、マクロがスムーズに実行されるようになります。全社でツールを使うなら、共有フォルダを活用するのが良いでしょう。特定のフォルダを信頼できる場所として登録するよう案内します。情報システム部門と連携して進めれば、より効果的な展開が可能です。

ただし、この方法には少し高いハードルもあります。ユーザー自身に、PCの設定変更をお願いしなければならない点です。多くの社員にとって、PCの設定をいじるのは煩わしい作業です。そのため、全社で徹底させるのは決して容易ではありません。多忙な現場の方々に、手間を強いるのは現実的ではない場合も多いのです。

安全なマクロ運用:署名・配布・教育

より根本的な解決策として、別の方法もございます。それは、VBAファイルに「デジタル署名」を付与するやり方です。これは、開発者がそのツールの安全性を証明するためのものです。電子的な「判子」をファイルに押すようなイメージだとお考えください。信頼できる機関から発行された証明書を使って、署名を行います。するとWindowsは、それを「信頼できるファイル」と認識します。識別子が付いていても、マクロの実行が許可されるようになるのです。手間はかかりますが、その効果は非常に大きいと言えます。

VBAツール配布・利用・移行の最適化

また、配布経路そのものを見直すアプローチも有効です。ブラウザからのダウンロードで問題が起きるなら、別の手段を考えます。例えば、ファイルサーバー上のファイルへのショートカットを配布します。この方法なら、ダウンロードというプロセスを挟むことがありません。そのため、Zone Identifierが付与されるリスクを最小限に抑えられます。ただし、サーバーのパスが変わった際の管理には注意が必要です。また、適切なアクセス権限の設定も、あわせて求められることになります。

VBAマクロの安全な運用と将来性

Microsoft 365の環境であれば、クラウドの活用も一案です。SharePointやOneDrive for Businessなどのサービスを利用します。これらはOfficeアプリケーションと深く統合されています。そのため、設定次第ではスムーズにマクロを実行できるのです。組織全体で「信頼できる場所」として構成することも可能です。この機能を利用すれば、ユーザーの手間を大幅に省けます。ただし、環境やポリシーによって挙動が変わる点には注意してください。事前の入念な検証作業は、どうしても欠かすことができません。

VBAツール:安全利用と移行の検討

そして何より大切なのは、利用者への丁寧な説明です。情報を共有し、教育を行うことが、問題解決の近道となります。なぜマクロがブロックされるのか、その理由を伝えましょう。どうすれば安全に使えるのかを、分かりやすく解説することが重要です。非エンジニアの方にも伝わるような、優しい言葉を選んでください。単に「有効にしてください」と伝えるだけでは不十分です。仕組みを理解してもらうことで、ユーザーの納得感も高まるはずです。

VBA卒業、ノーコードでセキュアな自動化

もし学習の経験があるなら、VBA以外の選択肢も検討しましょう。Power Automateなどのノーコードツールへの移行です。VBAは便利ですが、セキュリティの課題が常に付きまといます。最新のクラウドツールなら、より安全な環境を構築できます。将来的なメンテナンスのコストを、削減できる可能性もあるのです。ツールの安定した稼働は、業務の効率化に直接つながります。開発者の負担を減らし、利用者の困惑を解消しましょう。適切な対策を講じることが、これからの運用の鍵となります。

SharePointに置いてリンクで配布する

こうしたクラウドサービスは、非常に便利な仕組みを持っています。ファイルをクラウド上で一括管理し、共有できるためです。私たちも、SharePointをハブとして利用することにしました。VBAツールを、直接SharePointのライブラリに保存します。そして、そのリンクを利用者の方々に案内するようにしました。ダウンロードの手順を省き、直接ファイルを開いてもらう形です。これにより、識別子の問題を回避できるのではないかと期待しました。

ITインフラへの奮闘と問い合わせ激減

導入にあたっては、各部署との調整が不可欠でした。特に、情報システム部門との連携が何よりも大切です。アクセス権限の設定など、クリアすべき課題はたくさんありました。私自身、これまではファイルサーバーしか使ったことがありません。そのため、クラウド特有の設定を学ぶ必要がありました。正直に言って、新しいことを覚えるのは非常に大変な作業です。しかし、現状を変えたいという一心で、必死に取り組みました。問い合わせに追われる日々を、どうしても変えたかったのです。

保護ビュー解消、問い合わせ減のセキュリティ知見

取り組みの結果、驚くほど問い合わせが減少しました。利用者がSharePointから直接ツールを開けるようになったためです。「保護されたビュー」が出ることも、ほとんどなくなりました。もちろん、最初は少し戸惑う利用者の方もいらっしゃいました。しかし、以前のような大きな混乱は、すっかり解消されました。この経験を通じて、改めて感じたことがございます。それは、開発者には幅広い知識が必要だということです。プログラミングだけでなく、インフラの知識も欠かせません。

以前の私には、想像もできなかった展開です。Windowsの仕組みやクラウドの特性を調べることになるとは思いませんでした。社内ツールの配布方法を改善できたことは、大きな自信になりました。当時は本当に必死だったのだと思います。目の前で困っている人たちを、何とかして助けたい。そして、自分自身の苛立ちも解消したいと願っていました。その強い気持ちが、私をここまで導いてくれたと感じております。これからも目の前の課題に向き合い、少しずつ前進を続けたいと思います。

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

無料プレゼント

Excel業務を自動化する前に確認するチェックリスト(PDF)

自動化していい作業かどうか、VBAかPythonか、最初に避けるべき落とし穴。実務でよく迷うポイントを1枚にまとめました。メールアドレスだけで受け取れます。

無料でチェックリストを受け取る

¥980 ミニキット

コピペで動かせる3スクリプト+自動化チェックリスト

最新ファイルの自動選択・部署名ゆれの正規化・CSV文字コード確認の3本セット。今週の作業を1つだけ楽にするための最小キットです。

ミニキットを見る(¥980)

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

VBA・Pythonをもっと本格的に学ぶなら

VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。

侍エンジニア 無料カウンセリングを予約する →

Excel VBA プログラミング 解説書 第2版 基礎知識 学習 参考書 マクロ 自動化 業務効率化 手順書 入門書 技術書

関連する学びを少し広げるなら

Excel VBA プログラミング 解説書 第2版 基礎知識 学習 参考書 マクロ 自動化 業務効率化 手順書 入門書 技術書

この記事の内容を手元で試しながら、実務で少しずつ身につけたい方に向いた一冊です。

Amazonで見る → 楽天で見る →

※Amazon/楽天のアフィリエイトリンクを含みます

[アンケート] この記事は役に立ちましたか?

1問だけ回答する