どうも、こんばんは。IPPEIです。

最近のExcelは、パワークエリさんのおかげで、一昔前みたいなゴリゴリのVBAを書くことはあまりなくなった。本当にありがたい。パワークエリ使ったことないって? Excelの価値の半分を損しているよ。

そうはいっても、マクロを使う場面も少しはあるのだが、先日謎エラーが発生したので紹介しようと思う。発生したコードの箇所とエラーの内容は次のとおりである。

Worksheets("Sheet1").Select

エラーダイアログの内容: 実行時エラー ‘-2147319767 (80028029)’: オートメーション エラーです。無効な前方参照か、コンパイルされていない種類への参照です。

なんだこれは。僕も見たことのないエラーである。決して難しくないし、エラーになりようがない処理だ。それに、頻繁に使っているマクロだ。Excelを再起動してみたがダメ。PCを再起動してもダメ。シート名を変えてみてもダメだ。

とりあえず、エラー文をそのままググってみたところ、解決策が見つかった。

ブックを新規作成して、全てのシートとマクロをコピーする

このエラーの解決方法は、なんと、ブックを新しく作り直すということである。面倒だが、すべてのシートをコピーして(テーブルやクエリが含まれていると一気にコピーできない!)、もちろん必要なVBAのコードもコピーする。

この方法をとったところ、無事にマクロを実行することができた。何が原因でこのエラーが出るのかは謎でしかないが、何かしらブックが破損してしまったのかもしれない。

今回参考にさせてもらった記事によると、ファイルを保存する時にこのエラーが出ることがあるようで、結構困っている方もいそうである。

もっと簡単な方法があった。「開いて修復する」でファイルを開く

以下、2023年12月の追記です。sagakazu様から大変有益なコメントをいただきましたので、紹介させていただきます。

ファイルを開くダイアログで、ファイルを選択して「開いて修復する」をクリックして開くという方法である。これで修復される可能性があるとのこと。マイクロソフトのサポートサイトにもこの方法が載っている。

あいにく、この記事を書いてから一度も「オートメーションエラー」が発生していないため、この方法で修復できるのか試せていない。この記事をご覧になった方は、まずはこちらのより簡単な方法から試してみていただければいいと思う。それでダメなら、1つめのブックを新規作成する方法でやってみてほしい。

参考記事: Excelファイルが保存できない時に試したい3つの解決法

参考記事: 破損したブックを修復する - Microsoft サポート