Excel のバージョンが 2604(Microsoft 365 / Office 2024 系) に更新されてから、ActiveX を使った業務ファイルが突然動かなくなるという相談をよく受けるようになりました。私自身も、古い Excel で作成した業務ファイル(古い拡張子・古い VBA・古い ActiveX コントロール)を Excel 2604 で開いたところ、ボタンを押しても反応しない、あるいは 実行時エラー 57121 が発生するという問題に直面しました。
結論から言うと、これは Excel 2604 の仕様変更によって ActiveX が既定で無効化されていることが原因です。さらに、ネット上でよく見かける「ActiveX の設定は 3 番目を選ぶべき」という情報は、古い Excel の仕様に基づいたものであり、Excel 2604 では必ずしも当てはまりません。この記事では、ActiveX が動かない理由と設定方法、そして 4 つの設定内容の違いについて、実際の検証結果を踏まえて解説します。
■ ActiveX が動かない最大の理由は「Excel 2604 の仕様変更」
Excel 2604 では、Microsoft が ActiveX を段階的に廃止する方針を取っており、セキュリティ上の理由から 初期設定で ActiveX が完全にブロックされる ようになりました。これにより、古いファイルであっても、ActiveX ボタンを押した瞬間に内部でブロックが発生し、結果としてマクロの初期処理が正常に動かず、Select のような基本的な処理まで巻き添えでエラーになることがあります。
つまり、エラー 57121 は VBA の問題ではなく、ActiveX が動作を許可されていないことが原因なのです。
■ ActiveX の設定画面の開き方
ActiveX の設定は次の手順で確認できます。
- ファイル
- オプション
- トラストセンター
- トラストセンターの設定
- ActiveX の設定
ここに 4 つの選択肢が表示されます。

■ ActiveX の 4 つの設定内容と違い
① すべてのコントロールを無効にする(警告なし)
この設定は ActiveX を完全にブロックします。警告も表示されず、ボタンを押しても何も起きません。Excel 2604 の既定設定がこれに該当します。業務ファイルが突然動かなくなった場合は、まずこの設定が原因である可能性が高いです。
② 確認メッセージを表示してから、最低限の制限を適用してすべてのコントロールを有効にする
この設定では、ファイルを開いた際に「ActiveX を有効にしますか?」という確認メッセージが表示されます。許可すれば動作するのが基本ですが、古い ActiveX コントロールの場合は内部でブロックされることがあり、②では動かず③では動くという現象が発生することがあります。
③ 安全でない可能性があるコントロールを無効にする
古い Excel の時代は、この設定が最も安全性と互換性のバランスが良いとされていました。Excel 2604 では安全性判定が簡略化されており、古い ActiveX でもこの設定では動作することが多いです。実際、私の環境でも②では動かず③では動くというケースがありました。
④ 制限を適用せずにすべてのコントロールを有効にする
この設定は ActiveX を完全に許可します。最も危険な設定ですが、Excel 2604 では動作します。ただし、企業環境ではまず許可されないため、テスト目的以外では推奨できません。
■ なぜ「②では動かないのに③では動く」ことがあるのか
これは 古い ActiveX コントロールを Excel 2604 で使用する場合にだけ起きる特殊な現象です。古い ActiveX は署名がなかったり、古い GUID を使用していたりするため、②の安全性チェックで内部的にブロックされることがあります。一方で、③は安全性判定が簡略化されているため、古い ActiveX が通過して動作することがあります。
つまり、古いファイルを Excel 2604 で使用する場合、③のほうが安定するケースがあるのです。
■ どの設定を選ぶべきか
結論としては、次のように使い分けるのが現実的です。
- 古い Excel で古いファイルを使う場合 → 3 番目が最適
- Excel 2604 で古いファイルを使う場合 → ②〜④は動作するが、③が最も安定することがある
- Excel 2604 で新しいファイルを使う場合 → ②で十分

つまり、ActiveX の設定は ファイルの古さではなく、実行する Excel のバージョンで選ぶべきなのです。
■ まとめ
Excel 2604 で ActiveX が突然動かなくなるのは、ActiveX が既定で無効化された仕様変更が原因です。古い ActiveX を使用している場合は、②では動かず③で動くという逆転現象が起きることがあります。ネットの記事の「3 番目を選べ」という情報は古い Excel の仕様に基づいているため、Excel 2604 では必ずしも当てはまりません。
今後 ActiveX は完全に廃止される方向にあるため、フォームコントロールや UserForm への移行も検討する必要があります。業務ファイルの安定運用のためにも、Excel のバージョンと ActiveX の仕様を正しく理解しておくことが重要です。

コメント