マクロを含む古いエクセルファイルをExcel2019で開くとエラーに


※全てのExcelで動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます

Excelメニューへ戻る

 

対象

マクロを含むエクセルファイル(Excel文書、エクセルブック)で、かつ、古い形式の互換ファイル。

拡張子が xls のもので、xls以外のファイルは検証していません。

この記事では以下「マクロ有りの互換ファイル(xls)」と呼びます。

 

症状

「マクロ有りの互換ファイル(xls)」をExcel2019で開いたら、エラーが発生しマクロが動作しなかった。

 

全てのファイルか?

「マクロ有りの互換ファイル(xls)」が複数あるのですが、症状が出たの1つだけでした。ですので、「マクロ有りの互換ファイル(xls)だからエラーが出る」というわけではありません。

 

 

エラーの内容

非表示モジュール内でコンパイルエラーが発生しました。通常このエラーは、コードがこのアプリケーションのバージョン、プラットフ

「Microsoft Visual Basic for Applications 非表示モジュール内でコンパイルエラーが発生しました。通常このエラーは、コードがこのアプリケーションのバージョン、プラットフ」

 

特定のコード、関数か?

現時点では「特定ではない」と判断しています。その理由は、問題のモジュールでエラーが出て中断しても、毎回、中断する場所が異なるからです。

 

 

考えられる原因

ネット上の情報から、Excel2019からマイクロソフト社は 64bit にしたため。Excel2016以前は基本的に 32bit だったので、コードの一部で非互換が発生している模様。(意図的に64bit版Excelを入れた場合は除く)

そもそも論として「マクロ有りの互換ファイル(xls)」が古すぎるので、非互換のエラーが出ても仕方がないと判断しています。

 

 

回避策

検証した結果

1. 「マクロ有りの互換ファイル(xls)」を Excel2010/2013/2016 のいずれかで開く

2. 「コンテンツの有効化」をクリック

3. 上書き保存する

4. Excel2019のパソコンにコピーして開く

5. エラーが出ない。そして正常にマクロが動作した。

 

その回避策のメリットは?

・コードを変更する必要がない点です。

・「マクロ有りの互換ファイル(xls)」が、Excel2016までは問題なく開いていたのにExcel2019でエラーで開かないとお困りの場合、とりあえず開くことができる点です。

 

 

疑問

Q. 回避策をすると、なぜエラーが出ないのか?

A. 不明です。

 

 

他にわかっていること

・「マクロ有りの互換ファイル(xls)」を、マクロ有効ブック(xlsm)として別名保存しても同じようにエラーになる。これはExcelのどのバージョンでも同じ。

 

・Excel2007で「マクロ有りの互換ファイル(xls)」を開いて保存したものを、Excel2019で開くとエラーになる。

 

・「マクロ有りの互換ファイル(xls)」を何もせずに、そのままExcel2019で開くとエラーになる。

したがって、他のExcel(2010/2013/2016)で一度保存する必要がある。

 

Excelメニューへ戻る

 




トップページへ