更新履歴(4件・最終更新 2026年08月02日)
この記事に加えた変更の記録です。アーカイブした更新前のバージョンは、DOI付きの固定URLから読めます。
- 記事の冒頭に「この記事の知識マップ」節を追加しました。本文で扱っている概念とその関係を、要約・図・詳細ページへのリンクにまとめたものです。本文の主張は変えていません。
- 外部レビュー(1283件)への対応として本文を更新しました。個々の変更内容は、この下の履歴を参照してください。
- 1章に用語ミニ辞書と記事の構成表を追加し、見出しに通し番号を付けました。Step 1に`OSArchitecture`はOSのbitnessでありOfficeのものではないという読み方、Step 2にActiveX設定がWord・Excel・PowerPoint・Visioの全ファイルに及ぶという適用範囲、Step 4にWOW6432Nodeを見ないと未登録に見える注意を追記しました。
- Officeの設定画面までの案内が現在の画面表示と食い違っていたのを、実際のメニュー名(トラスト センター)に直しました。
- 初版公開
この記事を引用する(DOI: 10.5281/zenodo.21589810)
この記事はZenodoにアーカイブされています。常に最新版へ解決されるDOIと、いま表示している版に固定されたDOIの両方を下に示します。
小村 豪(2026)「Office 2024/Microsoft 365でActiveXが動かない原因と確認手順」合同会社小村ソフト. https://doi.org/10.5281/zenodo.21589810 https://staging.comcomponent.com/blog/2026/04/25/002-office-2024-microsoft-365-activex-troubleshooting/
- DOI(最新版)
- 10.5281/zenodo.21589810
- DOI(この版)
- 10.5281/zenodo.21732826
1. 最初に知っておくべきこと
Office 2024 と Microsoft 365 では、ActiveX コントロールが既定で無効化されています。 以前は動いていた Excel のボタンやフォーム、Word / PowerPoint の埋め込みオブジェクトが更新後に突然「動かない」ように見えるのは、たいてい プログラムの故障ではなく、セキュリティ既定値の変更 が原因です。
原因は大きく3つに分類できます。
- セキュリティ設定の変化(Trust Center、ActiveX 既定無効)
- 32bit / 64bit の不一致(64bit Office に 32bit 専用コントロールを載せている)
- COM 登録や依存 DLL / ランタイムの不足(regsvr32 未実行、VC++ ランタイム欠落)
実務の鉄則: この順番で上から潰すのが最短です。
この記事で使う用語
情シス担当者向けに、本文で断りなく出てくる用語を先にまとめます。
| 用語 | 意味 |
|---|---|
| bitness(ビット数) | 32bit 版か 64bit 版かの別。Office、Windows、COM / ActiveX コントロールにそれぞれ bitness があり、Office と COM の bitness は一致していないと動きません(Windows の bitness とは別の話です) |
| MOTW(Mark of the Web) | ブラウザーやメールクライアントがダウンロードしたファイルに付ける「インターネットから来た」という印。実体は Zone.Identifier という代替データストリームで、これが付いていると Office は保護ビューで開き、ActiveX やマクロを止めます。ファイルのプロパティにある「許可する」か PowerShell の Unblock-File で外せます |
| kill bit(キルビット) | 特定の CLSID のコントロールを、ホスト側で起動させないようにする無効化の仕組み。Office では COM Compatibility キーの下に CLSID 単位で設定されます。ここに設定が入っていると、COM 登録が正しくてもそのコントロールは動きません |
| Click-to-Run | 現在の Office のインストール方式。仮想化された配置と自動更新が前提で、MSI 時代の導入手順や自己登録前提の設計がそのままでは通らないことがあります |
| Trust Center(トラスト センター) | Office のセキュリティ設定をまとめた画面。日本語版のメニューでは「トラスト センター」と表示されます |
この記事の構成
長いので、必要なところから読んでください。大きく3つのまとまりに分かれています。
| まとまり | 章 | 内容 |
|---|---|---|
| 前提を揃える | 1〜3章 | 既定無効化の話、Office 2024 と Microsoft 365 の違い、切り分けの全体像 |
| 上から順に切り分ける | 4〜9章(Step 1〜6) | 環境情報の採取 → Trust Center → IE モード → COM 登録 → 依存 DLL → ログ採取 |
| 早見表と方針 | 10〜15章 | レジストリ / ポリシー早見表、症状別の対処、企業向け推奨設定、コマンド早見表 |
急いでいる場合は、まず 11章「よくある症状と対処法」で自分の症状を探し、そこから該当する Step へ戻ってください。
この記事の知識マップ
Office 2024とMicrosoft 365ではActiveXコントロールが既定で無効化されており、以前動いていたボタンや埋め込みオブジェクトが動かなくなる主因はこの既定値の変更にある。ActiveXの動作はCOMとしてのレジストリ登録を前提とし、Officeとコンポーネントのbitnessが一致していないと動かず、RegAsmのbitness違いも同じ不一致を招く。Trust CenterのActiveX設定とTrusted Publisherによるコード署名の扱い、MOTW付与による保護ビュー、.NET FrameworkやVisual C++再頒布可能パッケージといった依存ランタイムの不足、Click-to-Run特有の導入方式、Edgeの IEモード未構成も同様の症状を引き起こしうる。原因の切り分けにはProcess ExplorerやProcmonでの実測が有効で、恒久対応には限定的な許可と月次エンタープライズチャネルの採用が推奨される。
flowchart LR
accTitle: Office 2024/Microsoft 365のActiveXトラブルシューティングの知識マップ
accDescr: ActiveXが既定で無効化されていること、COM登録とbitness一致の前提、Trust Center・保護ビュー・依存ランタイム・Click-to-Run・IEモードという複数の原因がActiveXの動作失敗にどうつながるかを示す図。
activex["ActiveX"]
com["COM(コンポーネントオブジェクトモデル)"]
clsid["CLSID(Class ID)"]
wow6432node["WOW6432Node"]
regsvr32["regsvr32"]
regasm["Regasm.exe"]
bitness_match_requirement["bitness一致要件"]
activex_load_failure["ActiveX動作失敗"]
office_trust_center["トラスト センター"]
trusted_publisher_store["信頼された発行元ストア"]
code_signing_cert["コード署名証明書"]
zone_identifier["Zone.Identifier(Mark of the Web)"]
protected_view["保護ビュー"]
dotnet_framework[".NET Framework"]
vc_redistributable["Visual C++ 再頒布可能パッケージ"]
procmon["Process Monitor(procmon.exe)"]
process_explorer["Process Explorer"]
ie_mode["IEモード"]
enterprise_site_list["Enterprise Site List"]
click_to_run["Click-to-Run"]
office_msi_install["Office MSIインストール(旧方式)"]
disableallactivex_policy["DisableAllActiveX(検証用レジストリ)"]
monthly_enterprise_channel["月次エンタープライズ チャネル"]
activex -->|"前提とする"| com
com -->|"利用する"| clsid
com -.->|"に保存される"| wow6432node
regsvr32 -->|"実装を担う"| com
regasm -->|"実装を担う"| com
regasm -->|"前提とする"| bitness_match_requirement
activex -->|"前提とする"| bitness_match_requirement
bitness_match_requirement -->|"原因になり得る"| activex_load_failure
activex -.->|"で構成できる"| office_trust_center
office_trust_center -->|"利用する"| trusted_publisher_store
trusted_publisher_store -->|"前提とする"| code_signing_cert
code_signing_cert -->|"推奨される対応"| activex
zone_identifier -->|"原因になり得る"| protected_view
protected_view -.->|"原因になり得る"| activex_load_failure
activex -.->|"前提とする"| dotnet_framework
activex -.->|"前提とする"| vc_redistributable
activex_load_failure -->|"で確認できる"| procmon
activex_load_failure -->|"で確認できる"| process_explorer
ie_mode -.->|"で構成できる"| enterprise_site_list
ie_mode -.->|"原因になり得る"| activex_load_failure
click_to_run -->|"の後継"| office_msi_install
click_to_run -.->|"原因になり得る"| activex_load_failure
disableallactivex_policy -->|"用いるのは非推奨"| activex
monthly_enterprise_channel -->|"推奨される対応"| activex
図の実線は常に成り立つ関係、破線は条件付きの関係です(成立条件は詳細ページの各関係の説明に記載)。関係すべての一覧(全24件、根拠・確度つき)と主要概念の定義は知識マップ詳細ページにまとめています。データ: JSON-LD / Turtle
2. Office 2024 系 vs Microsoft 365 ── 何が違うのか
| 観点 | Office 2024 系(永続ライセンス) | Microsoft 365 Apps(サブスクリプション) |
|---|---|---|
| 更新モデル | セキュリティ / 品質更新のみ。新機能は追加されない | チャネル単位で継続的に機能更新される |
| ActiveX の既定値 | 既定無効 | 既定無効(同じ) |
| レジストリ / ポリシーのパス | 16.0 のまま | 16.0 のまま |
| 対応 OS(2026 年時点) | Windows 11、Server 2025 / 2022、Win10 LTSC | Windows 11、Server 2025 / 2022 が正式要件。Win10 は 2028 年 10 月まで移行猶予 |
| インストール方式 | Click-to-Run(MSI ではない) | Click-to-Run |
重要: レジストリパスは Office 2024 でも 16.0 のままです。「2024 だから 24.0 を探す」は典型的な遠回りです。
Windows 10 での注意点
Windows 10 の一般サポートは 2025 年 10 月 14 日に終了 しています。ただし Microsoft 365 Apps は Windows 10 上でも 2028 年 10 月 10 日まで セキュリティ更新が提供される移行猶予期間中です。つまり次のような状態です。
- 「Windows 10 では完全に動かない」わけではない
- 「OS はサポート切れ、Apps は猶予中」の二重前提で運用している状態
3. トラブルシューティングの全体像
flowchart TD
A[症状を再現] --> B[Office の製品名・build・bitness・OS 情報を採取]
B --> C{OS / Office のサポート前提は OK?}
C -- NG --> C1[前提修正: OS / Office エディション / チャネル見直し]
C -- OK --> D[Trust Center を確認]
D --> E{ActiveX 設定 / 保護ビュー / 信頼済みドキュメントに問題?}
E -- あり --> E1[設定・署名・配布設計を修正]
E -- なし --> F{レガシー Web / IE 前提?}
F -- はい --> F1[IE モードとサイトリストを確認]
F -- いいえ --> G[CLSID / InprocServer32 / TypeLib を確認]
G --> H{COM 登録は正常?}
H -- NG --> H1[regsvr32 / RegAsm / 再インストール]
H -- OK --> I[依存 DLL / .NET / VC++ ランタイムを確認]
I --> J{依存関係は満たしている?}
J -- NG --> J1[該当ランタイムを修復・再配布]
J -- OK --> K[ログ採取 / Procmon / Process Explorer]
K --> L[build 差分・セキュリティ更新差分を確認]
4. Step 1 ── 環境情報を採取する
まず以下の情報を必ず記録します。感覚ではなく 数値 で判断するためです。
Office 側
- [ファイル] → [アカウント] → [製品情報] で確認
- 製品名(Office 2024 / Microsoft 365 の別)
- バージョンと ビルド番号(最重要)
- インストール種別(Click-to-Run)
- [Excel のバージョン情報] / [Word のバージョン情報] などの製品情報ダイアログで 32bit / 64bit を確認
Windows 側
# OS の基本情報
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber, OSArchitecture
# Office プロセスの実行ファイルパス
Get-Process WINWORD, EXCEL, POWERPNT, VISIO -ErrorAction SilentlyContinue |
Select-Object ProcessName, Path
取得した結果をどう読むか
出力そのものは環境ごとに違うので、見るべき列と判断基準を挙げます。
| 列 | 内容 | 判断 |
|---|---|---|
Caption |
OS のエディション名 | Windows 10 か 11 か。サポート前提の確認に使う |
Version / BuildNumber |
OS のバージョンとビルド番号 | 「最新です」ではなく、この数値で会話する |
OSArchitecture |
OS が 64 ビットか 32 ビットか | これは OS の bitness です。Office の bitness ではありません |
Path(Get-Process 側) |
Office 実行ファイルの場所 | 64bit Windows では、C:\Program Files (x86)\Microsoft Office\... にあれば 32bit Office、C:\Program Files\Microsoft Office\... にあれば 64bit Office |
Get-Process が1件も返さないときは、対象の Office アプリが起動していないだけです。確認したいアプリを開いてから実行し直してください。-ErrorAction SilentlyContinue を付けているため、起動していないプロセス名があってもエラーにはなりません。
Office 側の bitness は、アプリのメニューからも確認できます。Excel なら「ファイル」→「アカウント」→「Excel のバージョン情報」と進むと、開いたダイアログの先頭行にバージョン、ビルド番号、「32 ビット」または「64 ビット」の表記が並びます。この行をそのまま控えておくと、ベンダー問い合わせや再現検証で話が早くなります。
よくある落とし穴
| 誤り | 正しい考え方 |
|---|---|
| 「最新版です」で済ませる | ビルド番号 を確認する。Microsoft 365 はチャネル差分が大きい |
| 64bit Office に 32bit 専用 COM / ActiveX を載せる | Office の bitness と COM の bitness は一致必須 |
| Windows 10 だからダメだと思い込む | 移行猶予中のため動く場合もあるが、前提が不安定 |
5. Step 2 ── Trust Center とセキュリティ設定を確認する
ここでやるのは、「ファイル自体がブロックされているのか」、それとも 「COM 実体の読み込みに失敗しているのか」 の切り分けです。
チェックリスト(上から順に)
| # | 確認項目 | 確認場所 | よくある原因 |
|---|---|---|---|
| 1 | ActiveX メッセージバー | ファイルを開いたときの黄色いバー | 既定無効。[コンテンツの有効化] で一時的に動くか試す |
| 2 | Trust Center > ActiveX 設定 | [ファイル] > [オプション] > [トラスト センター] > [トラスト センターの設定(T)…] > [ActiveX の設定] | 「通知なしにすべて無効」になっていないか |
| 3 | 保護ビュー | Trust Center > 保護ビュー | ネットワーク共有やメール添付から開くとブロックされる |
| 4 | 信頼済みドキュメント | Trust Center > 信頼済みドキュメント | 一度 trust されると警告が出なくなり再現が端末依存になる |
| 5 | 信頼できる発行元 | Trust Center > 信頼できる発行元 | 署名があっても証明書が配布されていないと許可されない |
| 6 | マクロ設定 | Trust Center > マクロ設定 | マクロと ActiveX は別設定だが複合的に影響することがある |
画面のどこを見るか
画面例の代わりに、位置と操作の順序を書いておきます。
- メッセージバー: ファイルを開いた直後に、リボンと編集領域の間へ横長の帯として表示されます。閉じてしまったときは、ファイルをいったん閉じて開き直すと再表示されます。
- ActiveX の設定画面: 「ファイル」→「オプション」→「トラスト センター」まで進んでも、そこに見えているのは説明文とボタンだけです。設定の実体は「トラスト センターの設定(T)…」ボタンを押した先にあり、開いた画面の左側の一覧から「ActiveX の設定」を選びます。この1段を飛ばすと目的の画面には着きません。Microsoft の案内でも、ActiveX を有効にする手順は、メッセージバーからの一時許可ではなく、この設定変更として説明されています。
- 保護ビュー / 信頼済みドキュメント / 信頼できる発行元: いずれも同じ「トラスト センターの設定」画面の左側一覧に並んでいます。再現確認の前に信頼済みドキュメントの記録をクリアしておくと、端末ごとの差が出にくくなります。
設定の適用範囲に注意: ActiveX の設定は、いま開いているファイルだけでなく、Word / Excel / PowerPoint / Visio のすべてのファイルに適用されます。「この1ファイルだけ許可する」設定ではありません。調査のために一時的に緩めたら、必ず元に戻してください。
最初に試すこと
- 問題のファイルを ローカルの管理されたフォルダ(例:
C:\Temp)にコピーし、別名で保存 - ネットワーク共有やメール添付から直接開くのを避ける(保護ビューの影響を排除)
- Office を セーフモード で起動してアドインの影響を切り分ける
excel /safe
winword /safe
powerpnt /safe
6. Step 3 ── IE モード依存かどうかを確認する
「通常の ActiveX 障害」だと思っていたら、実は Edge の IE モード未構成 が原因というケースがあります。
- IE モードはブラウザ全体のスイッチではなく、Enterprise Site List に登録したサイトだけ に適用される
- 社内 Web 連携の一部だけが動かない場合は、そのサイトが IE モード対象になっているか確認する
確認先は次のとおりです。
- Edge ポリシー: 管理用テンプレート > Microsoft Edge
- レジストリ:
HKLM\SOFTWARE\Policies\Microsoft\Edge - 診断ページ:
edge://compat/iediagnostic
7. Step 4 ── COM 登録を確認する
Trust Center に問題がない場合、次は COM の実体が正しく登録されているかを確認します。
基本確認コマンド
:: CLSID の登録状況を確認
reg query "HKLM\SOFTWARE\Classes\CLSID\{YOUR-CLSID-HERE}\InprocServer32" /s
:: ネイティブ COM / ActiveX DLL の登録・解除
regsvr32 C:\Path\YourControl.dll
regsvr32 /u C:\Path\YourControl.dll
確認結果の読み方
reg query の結果で見るのは3点です。
- キーが存在するか。キーが無ければ何も表示されず、「見つかりません」というエラーだけが返ります。この時点で未登録が確定します。
- 既定値に入っている DLL のパス。ここが COM の実体です。
- そのパスにファイルが実在するか。アンインストールや移動で実体だけが消え、登録が残っている状態はよくあります。
判定まで一度に行うなら、PowerShell の方が読みやすくなります。
# 調べたい CLSID に置き換えて実行します(波かっこを含めて指定)
$clsid = '{00000000-0000-0000-0000-000000000000}'
$key = "HKLM:\SOFTWARE\Classes\CLSID\$clsid\InprocServer32"
if (Test-Path $key) {
$server = Get-ItemPropertyValue -Path $key -Name '(default)'
[pscustomobject]@{
CLSID = $clsid
Server = $server
FileExists = Test-Path $server
}
} else {
Write-Host "未登録: $key が見つかりません"
}
FileExists が False なら、登録は残っているのに実体が無い状態です。再インストールか再登録が必要です。
見る場所を間違えない: 64bit Windows 上で 32bit の COM を登録すると、実体は
HKLM\SOFTWARE\Classes\WOW6432Node\CLSID\{CLSID}側に入ります。64bit の PowerShell やreg queryからHKLM\SOFTWARE\Classes\CLSIDだけを見ると「未登録」に見えるため、32bit Office のトラブルではWOW6432Node配下も必ず確認してください。
.NET 製 COM の場合(重要)
.NET アセンブリに regsvr32 は使えません。RegAsm を使います。
:: 32bit Office on 64bit Windows → Framework の RegAsm を使う
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "C:\Path\YourControl.dll" /codebase /tlb
:: 64bit Office → Framework64 の RegAsm を使う
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" "C:\Path\YourControl.dll" /codebase /tlb
典型的な事故: 「RegAsm の bitness が Office の bitness と揃っていない」 → レジストリ上は登録成功でも Office からは見つからない。
8. Step 5 ── 依存 DLL / ランタイムを確認する
「本体 DLL はあるのにロードされない」場合は、依存先が不足している ケースが多いです。
実務で頻発する不足ランタイム
| 不足しがちなもの | 確認方法 |
|---|---|
| Visual C++ 再頒布可能パッケージ(2013, 2015-2022) | コントロールパネル > プログラムと機能 で一覧確認 |
| .NET Framework 4.8.1 | reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" |
| 依存 DLL(ベンダー独自) | Process Explorer / Procmon で確認 |
低レベル調査ツール
| ツール | 用途 |
|---|---|
| Process Explorer | プロセスに読み込まれている DLL 一覧を確認 |
| Procmon | NAME NOT FOUND / PATH NOT FOUND / ACCESS DENIED をリアルタイムで追跡 |
Procmon で再現時のログを取り、NAME NOT FOUND でフィルタリングすれば、どの DLL やレジストリキーが見つからなかったかが一目でわかります。
フィルターの掛け方、ノイズの落とし方、どのイベントから読むかはProcess Monitor(ProcMon)実践ガイドに手順としてまとめています。また、登録と bitness の組み合わせで詰まった場合はCOM/OCX/ActiveX開発でハマる登録とbitnessの罠が、開発側から見た同じ問題を扱っています。
9. Step 6 ── ログを取得して最終確認
ここまでで原因が特定できない場合は、ログを有効にして 再現の瞬間 を捕まえます。
Office 一般ログの有効化
reg add HKCU\Software\Microsoft\Office\16.0\Common\Logging /v EnableLogging /t REG_DWORD /d 1
Click-to-Run 詳細ログの有効化
reg add HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v LogLevel /t REG_DWORD /d 3
reg add HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v PipelineLogging /t REG_DWORD /d 1
ログは %windir%\temp や %temp% に出力されます。
イベントビューアーも併用
eventvwr.msc
- Windows ログ > アプリケーション を確認
- .NET Runtime や SideBySide のエラーが決定打になることが多い
検証後のログ無効化(忘れずに)
reg delete HKCU\Software\Microsoft\Office\16.0\Common\Logging /v EnableLogging /f
reg delete HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v PipelineLogging /f
reg delete HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v LogLevel /f
10. 主要レジストリ / ポリシー早見表
覚えるべき4つのパス
| 用途 | パス |
|---|---|
| Office ポリシーのルート | HKLM\SOFTWARE\Policies\Microsoft\Office\16.0 |
| ActiveX 一括無効の確認 | HKCU\Software\Microsoft\Office\Common\Security\DisableAllActiveX(1=無効, 0=解除) |
| COM 実体の登録 | HKLM\SOFTWARE\Classes\CLSID\{CLSID}\InprocServer32 |
| Office COM kill bit | HKLM\Software\Microsoft\Office\16.0\Common\COM Compatibility\{CLSID} |
32bit Office on 64bit Windows では、COM 関連は
Wow6432Node配下も確認すること。
よく使うテスト用レジストリ(検証専用)
Windows Registry Editor Version 5.00
; テスト専用: ActiveX 一括無効を解除
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]
"DisableAllActiveX"=dword:00000000
警告: これらの設定は検証専用です。恒久対応は「信頼できる配布経路と署名」で行ってください。
11. よくある症状と対処法
| 症状 | 最も可能性が高い原因 | 最初に試すこと |
|---|---|---|
| 更新後にボタンが無反応 | ActiveX 既定無効 | メッセージバー → [コンテンツの有効化] → Trust Center 確認 |
| 64bit Office でのみ失敗 | 32bit 専用 COM / ActiveX | ベンダーに x64 版の有無を確認。なければ Office 32bit に切り替え |
| 特定 PC だけ動かない | COM 未登録 / 登録破損 | reg query で CLSID 確認 → regsvr32 で再登録 |
| DLL はあるのにロードされない | 依存 DLL / VC++ ランタイム不足 | Procmon で NAME NOT FOUND を追跡 |
| ネットワーク共有やメール添付で失敗 | 保護ビュー / MOTW | ローカルフォルダにコピーして再現差を確認 |
| 社内 Web 連携の一部だけ失敗 | IE モード未構成 | Enterprise Site List に対象サイトを追加 |
| 署名済みなのに許可されない | 証明書未配布 / 信頼できる発行元未登録 | コード署名の有効性と証明書配布を確認 |
| MSI 時代の導入手順を流用して挙動が変わる | Click-to-Run 前提への移行 | 旧スクリプトや自己登録前提の設計を見直し |
12. 企業向け推奨設定
恒久対策の基本は 「全体のセキュリティを下げる」ではなく「必要な対象だけを限定的に許可する」 ことです。
| 項目 | 推奨 |
|---|---|
| 更新チャネル(Microsoft 365) | legacy ActiveX 依存が強い端末は 月次エンタープライズ チャネル(変化点が読みやすい) |
| Office bitness | ベンダーが x64 対応を明言していない限り、Office 32bit を優先検討 |
| Trusted Locations | ネットワーク上の信頼できる場所は 原則禁止。必要時は例外申請方式 |
| 署名 | 自社配布 ActiveX / マクロ / アドインは コード署名 し、Trusted Publisher を一元管理 |
| IE モード | 必要な URL だけ Enterprise Site List に登録(全体のレガシー化は避ける) |
| 展開前検証 | 本番配布前に pilot ring を作り、代表帳票 / 代表端末で build 固定検証 |
Microsoft 365 の展開設定例(32bit + 月次エンタープライズ)
<Configuration>
<Add OfficeClientEdition="32" Channel="MonthlyEnterprise">
<Product ID="O365ProPlusRetail">
<Language ID="ja-jp" />
</Product>
</Add>
<Updates Enabled="TRUE" />
<Display Level="None" AcceptEULA="TRUE" />
</Configuration>
13. 最終手段 ── 修復
- クイック修復 / オンライン修復 は、設定や登録破損には効く
- ただし x86 / x64 不一致や署名 / ポリシー問題そのものは解決しない
- 修復は「最後にやる」(先にやると調査ログが汚れる)
14. コマンド早見表
| 目的 | コマンド |
|---|---|
| セーフモード起動 | excel /safe / winword /safe |
| COM DLL 登録 | regsvr32 xxx.dll |
| COM DLL 解除 | regsvr32 /u xxx.dll |
| .NET COM 登録 (32bit Office) | Framework\v4.0.30319\RegAsm.exe xxx.dll /codebase /tlb |
| .NET COM 登録 (64bit Office) | Framework64\v4.0.30319\RegAsm.exe xxx.dll /codebase /tlb |
| レジストリバックアップ | reg export HKCU\... backup.reg /y |
| Office 一般ログ有効化 | reg add HKCU\Software\...\Logging /v EnableLogging /t REG_DWORD /d 1 |
| Click-to-Run 詳細ログ有効化 | reg add HKLM\SOFTWARE\...\OverRide /v LogLevel /t REG_DWORD /d 3 |
| イベントビューアー起動 | eventvwr.msc |
15. まとめ ── 潰す順番を間違えない
設定ミス → OS / bitness の不一致 → COM 実体問題 → 依存関係 → 更新差分
ActiveX のトラブルは「Excel だけの問題」に見えても、実際には Office の既定セキュリティ + Windows のサポート前提 + COM 実体登録 + 依存ランタイム + 更新モデル の5層が交差する問題です。闇雲に設定を緩める前に、上から順に切り分ければ、再発しにくい修復にたどり着けます。
参考リンク
- ActiveX controls are disabled by default in Microsoft 365 and Office 2024 ─ 既定無効化の影響範囲
- Enable or disable ActiveX settings in Office files ─ ユーザー操作に最も近い資料
- Update history for Office LTSC 2024 and Office 2024 ─ build 比較、更新前後差分
- Overview of update channels for Microsoft 365 Apps ─ Current / Monthly Enterprise / Semi-Annual の違い
- Release Information for Updates to Microsoft 365 Apps ─ チャネル起因の挙動差
- Compatibility between the 32-bit and 64-bit versions of Office ─ ActiveX / COM 資産が絡むときの判断基準
- Microsoft Edge での Internet Explorer モード ─ Enterprise Site List とポリシー
- regsvr32 コマンド ─ ネイティブ COM の登録 / 解除
- Regasm.exe (アセンブリ登録ツール) ─ .NET 製 COM の登録
- Process Monitor (Procmon) ─ NAME NOT FOUND / PATH NOT FOUND の追跡
- Process Explorer ─ プロセスの DLL ロード状況
- Latest supported Visual C++ Redistributable Downloads ─ VC++ ランタイム不足の確認先
- .NET Framework インストール ガイド ─ .NET Framework のバージョン確認
関連する記事
同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。
Windowsアプリ 外注・受託開発を依頼する前に整理したいこと
Windowsアプリの外注・受託開発を依頼する前に、既存ソフト改修、装置連携、COM/ActiveX、配布・更新、保守の整理ポイントを解説します。
COM/OCX/ActiveX開発でハマる登録とbitnessの罠
COM、OCX、ActiveX開発でハマりやすい32bit/64bit、Visual Studio 2022、regsvr32/Regasm、管理者権限、HKCR、STA/MTAを実務目線で整理します。
PowerShellからCOMと.NETを呼ぶ実践 ── スクリプトの届く範囲を一気に広げる
PowerShellから.NETクラスを呼ぶ方法、Add-TypeによるC#とWin32 APIの組み込み、COM操作、Excelのプロセス残留と後始末、Officeの無人実行が非サポートである理由、5.1と7の違いまで実務目線で解説します。
開発者の異常な愛情、または私は如何にして心配するのをやめてWindowsを愛するようになったか
Windowsは面倒くさい。けれど、その面倒くささは、現実の業務を背負ってきたOSだからこその面倒くささでもある。
VBScript廃止に備えるVBA・社内ツール点検ガイド
VBScript段階廃止に備え、VBA・Excelマクロ・社内ツールの棚卸し、静的検出、実行ログ、代替技術選定、テスト、段階展開を整理します。
関連トピック
このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。
Windows技術トピック
Windows 開発、不具合調査、既存資産活用の技術トピックをまとめた入口です。
ActiveX / 移行テーマ
COM / ActiveX / OCX を残すか、包むか、置き換えるかを整理するトピックです。
32bit / 64bit テーマ
32bit / 64bit、ネイティブ連携、C++/CLI まわりを整理するトピックです。
このテーマがつながるサービス
この記事は次のサービスページにつながります。近い入口からご覧ください。
既存資産活用・移行支援
ActiveX / OCX / COM コンポーネントを使った Excel / Word / PowerPoint / Visio 資産の延命と移行は、既存資産活用と移行支援のテーマと直接重なるからです。
不具合調査・原因解析
「以前は動いたボタンが急に無反応」のような Office × COM 起因の不具合は、Process Explorer / Procmon / Click-to-Run ログを使った原因切り分けが向いているテーマだからです。
技術相談・設計レビュー
Office bitness、更新チャネル、Trusted Publisher、IE モード、Enterprise Site List までを含む構成方針は、配布前の設計レビューとして整理しやすいからです。
よくある質問
この記事のテーマについて、相談時によくある質問をまとめています。
- Office 2024やMicrosoft 365でActiveXが既定で無効化されたとはどういうことですか?
- Office 2024 と Microsoft 365 では、ActiveX コントロールが既定で無効化されています。以前は動いていた Excel のボタンやフォーム、Word / PowerPoint の埋め込みオブジェクトが更新後に突然「動かない」ように見えるのは、たいていプログラムの故障ではなく、このセキュリティ既定値の変更が原因です。ファイルを開いたときの黄色いメッセージバーで [コンテンツの有効化] を選んで一時的に動くか試し、Trust Center(セキュリティ センター)の ActiveX 設定を確認するのが最初のステップです。
- Office更新後にExcelのActiveXボタンが無反応になりました。何から確認すべきですか?
- 原因は大きく 3 つに分類できます。1 つ目はセキュリティ設定の変化(Trust Center、ActiveX 既定無効、保護ビュー)、2 つ目は 32bit / 64bit の不一致(64bit Office に 32bit 専用コントロールを載せている)、3 つ目は COM 登録や依存 DLL / ランタイムの不足(regsvr32 未実行、VC++ ランタイム欠落)です。この順番で上から潰すのが最短です。あわせて、製品名・ビルド番号・Office の bitness・OS 情報を最初に記録し、ネットワーク共有やメール添付から直接開かずローカルフォルダで再現差を確認します。
- 64bit OfficeでだけActiveXコントロールが動かないのはなぜですか?
- Office の bitness と COM / ActiveX の bitness は一致が必須だからです。64bit Office に 32bit 専用のコントロールを載せても動きません。ベンダーに x64 版の有無を確認し、なければ Office 32bit への切り替えを検討します。.NET 製 COM の場合は regsvr32 ではなく RegAsm を使い、32bit Office なら Framework、64bit Office なら Framework64 の RegAsm で登録します。RegAsm の bitness が Office と揃っていないと、レジストリ上は登録成功でも Office からは見つからない、という典型的な事故になります。
- ActiveXを恒久的に使えるようにするには、どう設定すべきですか?
- 全体のセキュリティを下げるのではなく、必要な対象だけを限定的に許可するのが基本です。DisableAllActiveX のレジストリ変更はあくまで検証専用で、恒久対応は信頼できる配布経路と署名で行います。具体的には、自社配布の ActiveX / マクロ / アドインにコード署名して Trusted Publisher を一元管理し、Microsoft 365 では変化点が読みやすい月次エンタープライズ チャネルを検討し、ベンダーが x64 対応を明言していない限り Office 32bit を優先検討します。本番配布前には pilot ring を作り、代表帳票・代表端末でビルドを固定して検証します。