先日、1年以上も利用していなかったエクセルファイルを開こうとしたら突然「オートメーションエラー」のダイアログボックスが表示されて何もできなくなりました。
VBAの起動時に問題がある?
どうもファイルを開く際にマクロを実行していて、起動した瞬間にエラーが起こっているようでした。
1年前に開いたときには何もなかったのですが、突然「オートメーション エラー」が表示されるようになりました。
詳細を確認しようと「OK」ボタンを押しても、デバッグが開始されると同時に同じダイアログボックスが開き、何もできない状態になります。
もちろんエクセル自体を終了させることもできず、タスクマネージャーからエクセルを強制終了させるしか方法はありませんでした。
タスク マネージャーからエクセルを強制終了する方法
まずは、タスク マネージャーからエクセルを強制終了する方法をご紹介します。
タスクマネージャーを起動するには、キーボードの「Ctrl」+「Shift」+「Esc」を同時に押します。
タスクマネージャーを開いて、「Microsoft Excel」を選択後、「タスクの終了(E)」をクリックします。
トラストセンターでマクロを無効にする方法
もちろん、何もしないで問題のファイルを開くとまたエクセルが固まります。
そのために「トラストセンター」でマクロを無効にする必要があります。
エクセルファイルのダブルクリックではなく、直接エクセル(または問題のないエクセルファイル)を起動し、「ファイル」「オプション」で「Excel のオプション」を開きます。
「Excel のオプション」「トラスト センター」から「トラスト センターの設定(I)をクリックします。
その後、トラスト センターの「マクロの設定」から「警告を表示してすべてのマクロを無効にする」をチェックします。
これで起動時にマクロ(VBA)が実行されることが防止されます。
オートメーションエラーの原因はブックの共有(レガシ)だった!
以上のマクロを無効にする設定をした後、問題のファイルを確認してみました。
すると、設定した覚えのない、ブックの共有(レガシ)が設定されていた状態でした。
こちらのファイルはネットワーク上にあるファイルではなく、自分のローカルディスクに保存しているファイルです。
ブックの共有(レガシ)についてはこちらの記事をご覧になってください。
なぜブックの共有(レガシ)が設定されていたのかは不明ですが、ブックの共有(レガシ)をオフにすると、無事マクロを実行してもファイルを開くことが可能になりました。
一旦オートメーションエラーを回避するとブックの共有(レガシ)にしてもエラーは起こらなかった
ブックの共有(レガシ)で利用するつもりはなかったのですが、オートメーションエラーの回避ができた後に再度、ブックの共有(レガシ)を設定してみました。
すると、今回はオートメーションエラーは表示されずに以前のようにブックを利用することができました。
ですから、もともとVBA(マクロ)が原因というわけではありませんでした。
ブックの共有(レガシ)を設定するとVBAProjectはロックされる
ブックの共有(レガシ)を設定すると、VBAProjectがロックされる件については以前から自分は知っていました。
しかし、起動時に「オートメーションエラー」が発生したのは今回が初めてです。
もし同様にエクセルファイルで「オートメーションエラー」が発生してエクセルがフリーズするような状況になった方は、一度「ブックの共有(レガシ)」の設定を確認してみてください。
今まで利用できていたエクセルファイルがなぜ突然「オートメーションエラー」を発生させたのかは今でも謎です。
自分に起こった「オートメーションエラー」の件は、エクセルのバグの一種だと思います。
今回も無事、エクセルのトラブルを解決することができました。
「オートメーションエラー」は「ブックの共有(レガシ)」のチェックを一旦外すことによって、回避できることがあります。参考になれば幸いです。
「ブックの共有(レガシ)」はさまざまな問題が起こりますね。便利な機能ではあるのですが。
自分と同様に「オートメーションエラー」問題を解決できた方がいらっしゃったらコメントいただけたら幸いです。
コメント