Excelを32ビット版から64ビット版に変更したら、VBAから別のExcelファイルを開くときに「非表示モジュール内でコンパイルエラーが発生しました。」が表示された。
「Set ワークブックを読み取りのパスワードを指定して開く= Workbooks.Open()」を実行し、ファイル選択ダイアログが表示され、ファイルを選択すると表示される。動作は正常だが、エラーダイアログが表示される。
(1)「非表示モジュール内でコンパイルエラーが発生しました。
通常このエラーは、コードがこのアプリケーションのバージョン、プラットフォーム?
(x86)\Common Files\Microsoft Shared\OFFICE16\MSO.DLL」
このエラーダイアログが表示されたことがあるが、どちらが表示されるかはわからない。
(2)「非表示モジュール内でコンパイルエラーが発生しました。
通常このエラーは、コードがこのアプリケーションのバージョン、プラットフォーム?」
(3)「コンパイルエラー:
このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認および更新を行い、次にDeclareステートメントにPtrSafe属性を設定してください。」
<推定原因>どのエラーダイアログが表示されるかの理由は不明である。
また、「Workbook.Open」を実行したときにコンパイルエラーが表示される理由も不明である。
<対処>Excel-64bit環境でコンパイルしてエラーになった行を修正すれば、起動時や実行時にエラーが発生しなくなった。修正したソースは以下である。使っていないので、ただコメントにしただけですが。