道具としてのExcel活用
Excelマクロが突然動かない原因と対処法|ActiveX制限の影響
『このファイル内のActiveXコンテンツはブロックされています』でExcelマクロが機能停止
今朝出社したら、一斉に勤怠登録システムが動かなくなっていました。当社の社内システムは、ほぼExcel+VBAで構成されているので、他のシステムも同様に動かなくなっていました。
原因は、6月中旬以降に適用されたセキュリティパッチにより、ActiveX(アクティブ・エックス)の利用に制限がかかったためです。
Excelマクロが突然動かなくなった時の対処法を説明する図
ActiveXとは
ActiveXとは、1996年にMicrosoft社が開発したインターネット関連技術の総称です。Windowsの機能の一部を呼び出して使用するので、トロイの木馬型の悪意のあるプログラムがこのしくみを利用すると、思わぬ動作に繋がる、と言う建前で使えなくする方針とのことです。
Excelに本来ない機能をOS側から呼び出して使うなど、便利なことが多いため、当社の過去の実装でも多様しています。
これが突然使えなくなるというのは、セキュリティの3大要素の1つ、「可用性」が損なわれている歴としたセキュリティ事故なのですが、昨今では「セキュリティのために」という枕詞がつくと、「可用性が損なわれても仕方ない」ということになりがちです。
そうはいっても、現場で作業をする立場からすれば、仕事そのものが進まなくなるわけですから、素直に諦めるわけにもいきません。
以下に、このメッセージが出た場合の対処法を解説します。
ActiveX利用のための設定方法
まずは、Excelを開きます。
「ファイル」メニューから「セキュリティセンター」もしくは「トラストセンター」を経由して、「トラストセンター(セキュリティセンター)」→「トラストセンター(セキュリティセンター)の設定」で、設定画面を開きます(バージョンが異なると、表記やメニューのたどり方が変わります)。
Excelマクロが突然動かなくなった時の対処法を説明する図
Excelマクロが突然動かなくなった時の対処法を説明する図
設定画面(例はセキュリティセンターですが、トラストセンターも同様です)で、「ActiveXの設定」を選択し、下から2番目のラジオボタンを選択します(爾後、これでも動かない場合のみ、一番下のラジオボタンを選んで下さい)。
続いて、一番下の「セーフモード(コンピュータに対するコントロールのアクセスを制限します)のチェックを外します。
なお、セーフモードは、Windowsにもありますが、起動する際に主要機能を制限するモードで、Windowsの場合は画面が狭くなり、ネットワークが使えなくなります。Excelでは、外部ファイルへのアクセスなどに制限が出るようです(詳細は不明)。
Excelマクロが突然動かなくなった時の対処法を説明する図
この後、Excelを再起動すれば、マクロが使える様になります。
設定画面が使えない場合
組織によっては、こうした設定画面へのアクセスができないよう、制限を加えている場合があります。
残念ですが、その場合、組織の意志決定者が「利便性よりセキュリティリスクを優先する」と決めた結果なので、従わざるを得ません(所謂セキュリティ戦略です)。
こうした場合、当面手作業で対処せざるを得ませんが、ActiveXを使わない方法に変更することで、動かせるケースも多々あります。詳細は内容次第なので、お急ぎの方は当社までお問い合わせ下さい。
いよいよ動かせない場合は、クラウド環境で動作するプログラム等を新たに作ることになりますので、現状のロジックを開発社に正しく伝える必要があります。Excelの場合、マクロ(VBA)だけでなく、式や関数に依存した処理が多いのが特徴ですが、日頃上から下に処理が進むプログラム言語になれている開発者には、うまく読み取れないことがあります。
まずは、ドキュメント化(見える化)を試みましょう。
セキュリティへの懸念は?
もともとActiveXが使用できなくなったのは、「セキュリティのため」ということになっています。恐らく外部からの攻撃を意図したものと思われますが、むやみに未知のマクロ入りファイルを動かさなければ、問題はありません。このコラムを参照している方の大半が、社内で作ったファイルを社員が使っているはずなので、心配無用です。
なんでも「セキュリティのため」といえば通る風潮がありますが、基本に立ち返って「何を何から守るか」を改めて確認することをお勧めします。
他にも、「突然動かない」ケース
Windows Updateに伴い突然動かなくなることがあります。
Mark Of The Webによるケースはこちらをご参照ください。
FAQ
Q:『このファイル内のActiveXコンテンツはブロックされています』は直せるか?
A:設定を変えれば動かせるようになります
Q:動かすことで、セキュリティの問題はないか?
A:社内で作ったファイルを社員が使う場合、心配無用です。
Q:社内規定でActiveXが動かせなくなった場合は、どうすればよい?
A:ActiveX以外に換装することで、同等の動きになるできる場合が多いです。それがだめな場合、新環境を構築することになりますが、現状を正しく再現するためには、まずどのような構成となっているか、ドキュメント化が必要です。
当社では、Excelの関数・式・VBA等の解析も行っていますので、いよいよ手が追えない状況となりましたら、ご相談下さい。匿名でも歓迎です。
※本記事の情報は、マイクロソフト社の各種案内ページ、および自社独自の調査・検証結果に基づいています

