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