Excel for the WebでActiveX/フォームコントロールが動かない原因と対策|SharePoint共有.xlsmの回避策・移行ガイド

SharePoint で共有している .xlsm テンプレートを、外部ユーザーが Excel Online(Excel for the Web)で開いたらチェックボックス等が動かない——この手の相談はここ数年で一気に増えました。本記事では「なぜ起きるのか」を仕様ベースで整理し、短期の運用回避と、Office Scripts/Office.js/Power Apps/Power Pages への現実的な移行手順までまとめます。

目次

結論:Excel for the Web では ActiveX/フォームコントロールは動かない

Excel for the Web(ブラウザー版 Excel)では、ActiveX コントロールもフォームコントロールも「実行・操作の対象外」です。そのため、設定変更(Trusted Location、信頼センター、レジストリ等)で Web 側の制約を覆す “正式な回避策” はありません。

  • フォームコントロールに置き換えても Web 互換にはなりません(同じく未サポート扱い)。
  • VBA マクロも、Web では「開けるが作成・実行・編集はできない」ため、コントロールと VBA の組み合わせで作った UI は動きません。
  • Web で “動く形” にしたいなら、目的別に Office Scripts/Office.js アドイン/Power Apps/Power Pages などへ作り替えるのが現実解です。

まず整理:今回の症状は「ActiveX が無効化された」以前に、Web 版の仕様で詰んでいる

2025年4月以降、Microsoft 365 アプリ(デスクトップ版)では ActiveX が既定で無効化される流れが明確になり、以前より “ActiveX 前提の資産” が壊れやすくなりました。

ただし今回のポイントは、Excel for the Web が ActiveX/フォームコントロールをそもそも実行できない点です。デスクトップ版の信頼センター設定や Trusted Location は、基本的にデスクトップ版 Office アプリの制御であり、Web 版の非対応を解除するものではありません。

対応可否の早見表(SharePoint / OneDrive で開く前提)

機能・部品デスクトップ版 ExcelExcel for the Web補足
ActiveX コントロール条件付き(既定無効の影響あり)不可デスクトップでも既定で無効化される流れ。
フォームコントロール可不可Web では操作・実行の対象外。
VBA マクロ(.xlsm)可実行不可Web では開けるが作成・実行・編集は不可。
Office Scripts可可Web での自動化向け。ボタン配置も可能。
Office.js(Office アドイン)可可Excel 内にタスクペイン等の UI を追加できる。
セル内チェックボックス(新機能)可可TRUE/FALSE をセルに保持するタイプ。フォームコントロールとは別物。

なぜ Web では無理?(技術というより設計思想とセキュリティ)

ActiveX は Windows の COM 技術に依存し、Excel のプロセス内で動作する “クライアントローカル実行” の色が濃い仕組みです。一方、Excel for the Web はブラウザー上で安全に動かすために、実行環境・権限・互換性の前提が根本的に違います。だから「Trusted Location に入れれば Web でも動く」といった類の話にはなりません。

さらに VBA も Web では実行できないため、ActiveX/フォームコントロールに紐づくイベント(Click、Change 等)で業務ロジックを回している構成は、Web に持ち込むほど破綻します。

短期(暫定)対応:現実的に選べるのはこの3パターン

デスクトップ アプリで開く運用に寄せる(最短で止血)

「今の .xlsm を維持したい」「既存の VBA/ActiveX をすぐ作り替えられない」なら、短期はこれが最も成功確率が高いです。

やること効果注意点(外部ユーザー)
SharePoint/OneDrive 側で “デスクトップで開く” 導線を案内Web 非対応機能を回避外部ユーザーがデスクトップ版 Excel を使えない環境だと成立しない。
ユーザー側の既定設定を Desktop 優先に誤って Web で開く事故を減らす個人設定に依存。組織外だと統制しにくい。
サポートチケットでテナント設定・影響範囲の確認想定外の制限や展開状況を把握時間はかかるが “仕様確認の証跡” が残る

SharePoint/OneDrive には「ブラウザーではなくデスクトップ アプリで開く」導線や既定アプリの考え方が用意されています。運用設計としては、リンク配布時の案内文に「デスクトップで開く」を明記し、問い合わせの一次対応コストを下げるのがコツです。

“ブラウザー完結” が必須なら、Excel 内を「セル駆動 UI」に寄せる

フォームコントロールの置換は Web 互換になりませんが、「そもそもコントロールを使わない Excel」に寄せると Web 運用が成立することがあります。

  • セル内チェックボックス:チェックでセル値(TRUE/FALSE)が変わるタイプ。簡易なチェックリストや入力補助ならこれで代替できるケースが多いです。
  • データの入力はテーブル+入力規則(プルダウン):入力揺れを減らし、集計・検証もやりやすい。
  • 状態表示は条件付き書式:未入力・不備・完了などを色やアイコンで可視化。

割り切りポイント:セル駆動 UI は「クリックでマクロが走る」ような体験は作れません。代わりに “入力の失敗を減らす” 方向で UX を組み直すと、Web でも十分に回る帳票が作れます。

ActiveX を再有効化して凌ぐ(ただしデスクトップ限定、推奨はしづらい)

ActiveX が既定で無効化された後でも、デスクトップ版では信頼センター設定等で再有効化できる余地があります。

ただしこれはデスクトップ版の話で、Excel for the Web の非対応を解決しません。また、ActiveX はセキュリティリスクの文脈で扱われることが多く、外部ユーザー配布のテンプレートで “有効化をお願いする運用” は、説明責任・監査の観点で厳しくなりがちです。

中長期:ActiveX からモダン技術へ(目的別の最適解)

「外部ユーザーにもブラウザーで使わせたい」なら、最終的には作り替えが必要になります。ここは “何を実現したいか” で分岐します。

選択肢得意なこと外部ユーザー適性ハマりどころ
Office ScriptsExcel(特に Web)での自動処理・整形・定型作業△(基本は組織内)スクリプト共有は組織内に限定される。外部ユーザー運用の主役にしにくい。
Office.js アドインExcel 内にタスクペイン等の UI、対話、外部 API 連携△(配布設計次第)配布・権限・サイドロード・管理(中央展開等)をどうするかが先に来る。
Power Apps入力フォーム/業務アプリ化(スマホ・Web)○(ゲスト共有は要設計)外部ユーザーはゲスト招待やライセンス、データソース権限が論点。
Power Pages外部向けポータル/Web サイト(認証あり・匿名含む)◎データは Dataverse 前提に寄せる設計が基本。外部公開のガバナンスが組みやすい。

Office Scripts がハマる条件(ただし “外部ユーザー配布テンプレ” の主役にはしにくい)

Office Scripts は Excel for the Web の自動化に向いており、スクリプトをボタンとしてブックに配置することもできます。

一方で、スクリプト共有は「組織内に限定」されるため、SharePoint の共有リンクで外部ユーザーにそのまま実行させるシナリオとは相性がよくありません。

外部ユーザーが入力→内部ユーザーがスクリプトで処理(または Power Automate 経由で自動処理)という “分業” の形なら成立しやすいです。

Office.js アドインがハマる条件(Excel 内でリッチ UI を作りたい)

「Excel の中に専用 UI を置きたい」「ボタン押下で処理」「外部システム API と連携」「入力チェックを対話的にしたい」など、ActiveX で作っていた “画面っぽさ” を Excel の体験のまま再現したいなら Office.js アドインが候補です。Office Add-ins は Web 技術(HTML/CSS/JavaScript)で作れ、Excel on the web でも動作します。

ただし外部ユーザーに配る場合は、「誰がどのテナントでアドインを使うのか」が最初の壁になります。中央展開の範囲、サイドロード可否、認証(Entra ID 等)といった配布設計を先に固めると失敗しにくいです。

Power Apps がハマる条件(入力フォーム/業務アプリとして切り出す)

チェックボックスや選択肢、入力フォームを外部ユーザーに触らせたいなら、Excel のシート上に UI を作るより、最初からフォームアプリに切り出す方が運用が安定します。Power Apps はデータソース(SharePoint リスト、Dataverse など)を背後に置いて、入力・承認・通知まで含めた業務導線を作りやすいのが利点です。

注意点として、Excel コネクタは便利ですが制約が多く、データ規模や同時利用を前提にするほど辛くなります(例:取得件数や委任の制限など)。長期運用なら SharePoint リストや Dataverse に寄せる方が安全です。

Power Pages がハマる条件(外部向けポータルを作りたい)

外部ユーザーを想定するなら、Power Pages はかなり強力です。外部向けサイトとして設計されており、外部の認証や匿名閲覧も含めたパターンを取りやすいのが特徴です。

「外部ユーザーに入力してもらう」「入力内容を安全に保管し、内部で処理・承認する」という構造は、ActiveX チェックボックス付き .xlsm を配るより、セキュリティ面・運用面で説明がつきやすくなります。

“公式の移行ツール” はある?→自動変換は期待せず、要件分解が近道

現場感として、ActiveX 画面を自動で Office Scripts/Office.js/Power Apps に変換してくれる “公式の一括移行ツール” を期待すると詰みます。実務では、既存資産を「UI」「データ」「業務ルール」「自動化」に分解して、最適な置き場に移すのが一番早いです。

移行を成功させる分解テンプレ(そのまま棚卸しに使える)

分解対象質問移行先の当たり
UI(入力・選択)誰が、どこで、何を入力する?(外部ユーザー?社内?)Power Apps / Power Pages、または Excel のセル駆動 UI
業務ルール(チェック・分岐)入力チェックはどこでやる?エラーはどう返す?Power Apps / Power Pages / Office.js(対話型)、Excel 関数(軽量)
自動処理(整形・集計)ボタン押下?定時?保存時?承認後?Office Scripts + Power Automate、または Power Automate 単体
データ保管同時更新がある?監査ログは?権限は?SharePoint リスト / Dataverse(推奨)、Excel は短期・小規模向け

外部ユーザー配布(SharePoint 共有リンク)で特に注意すべきこと

「Excel をデータベース化」しない方がいいラインを決める

外部ユーザーが編集する前提だと、同時編集・行ロック・権限・誤操作の復旧など、Excel でやるほど辛い領域が必ず出ます。Power Apps で Excel をデータソースにすること自体は可能ですが、制約(例:扱える件数や委任、性能面の注意)があるため、長期ならデータは SharePoint リストや Dataverse に寄せる判断が堅いです。

Power Apps の “外部ユーザー共有” は権限とライセンス設計が本体

外部ユーザー(ゲスト)にアプリを使ってもらう場合、ゲスト招待、データソース権限、必要なライセンスといった前提が絡みます。「アプリを共有したのに動かない」は、だいたいここが原因です。

Office Scripts は「外部ユーザーに配って実行させる」用途だと詰まりやすい

Office Scripts は便利ですが、共有できる範囲が組織内に限定されるため、外部ユーザー配布テンプレートの “ボタンの置き換え” としてはハマりづらいのが実情です。外部入力→内部で処理、のように役割分担すると活きます。

よくある質問(検索されがちな論点を先回り)

フォームコントロールに置き換えたら、Excel Online で動きますか?

動きません。フォームコントロールも Excel for the Web では未サポートです。

Trusted Location にすれば、Web でも ActiveX が動きますか?

動きません。Trusted Location は主にデスクトップ版 Office アプリの信頼設定です。Web 版の非対応を解除するものではありません。

とにかくチェックボックスだけ Web で使いたい。最短の代替は?

フォームコントロールのチェックボックスではなく、セル内チェックボックス(TRUE/FALSE を保持するタイプ)を検討してください。簡易なチェック用途なら Web でも運用が成立しやすいです。

VBA マクロは Web で実行できないんですか?

Excel for the Web では、VBA マクロを作成・実行・編集できません(ファイルを開いて編集すること自体は可能です)。

「常にデスクトップで開く」を強制できますか?

環境や権限に依存しますが、SharePoint/OneDrive/Office 側には “ブラウザーではなくデスクトップ アプリで開く” 方向の設定・導線が用意されています。外部ユーザーを含む場合は、利用環境(デスクトップ版の有無)も含めて運用設計が必要です。

実務でのおすすめ進め方(失敗しにくい順)

  1. 止血:当面の運用を「デスクトップで開く」へ寄せるか、「セル駆動 UI」へ寄せるかを決める
  2. 棚卸し:ActiveX/フォームコントロールが担っている役割(入力・検証・自動化・連携)を分解する
  3. 再設計:外部ユーザーが触る導線は Power Apps / Power Pages に寄せ、Excel は帳票・出力に寄せる
  4. 段階移行:まずは “入力だけ” を移行 → 次に “自動処理” を Office Scripts/Power Automate へ → 最後に Excel 資産を軽量化

現場のコツ:「Excel を Web で使うこと」自体が目的になってしまうと、設計が歪みます。外部ユーザーが必要なのは多くの場合 “入力フォーム” で、Excel は裏側(集計・出力)に回した方がトラブルが減ります。

まとめ

SharePoint 共有の .xlsm で ActiveX/フォームコントロールが動かなくなった場合、Excel for the Web で動かす公式な回避策はありません。短期は「デスクトップで開く」運用に寄せるか、「セル駆動 UI(セル内チェックボックス等)」へ寄せて Web 互換の範囲で再構成するのが現実的です。中長期は、外部ユーザー要件があるほど Power Apps/Power Pages を中心に据え、Office Scripts/Office.js を補助的に使う設計が安定します。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次