現象
Microsoft Office Excel では、ワークシートまたはブックの "背後" に含まれている Microsoft Visual Basic for Application (VBA) マクロ コードが正しく動作しない可能性があります。
原因
これは、次の条件の両方が当てはまる場合に発生します。
-
問題のコードは、Auto_OpenやAuto_Closeサブルーチンなど、自動的に実行されるサブルーチン内に含まれています。
-
このコードは Visual Basic モジュールには含まれていませんが、ワークシートまたはブック自体の "背後" に含まれています。
回避策
自動的に実行されるサブルーチンを Microsoft Excel で正しく動作させるには、Visual Basic モジュール内にサブルーチンを含める必要があります。
Visual Basic モジュールをブックに挿入し、新しいモジュールにコードを配置する必要があります。 Visual Basic モジュールを挿入するには:-
Visual Basic エディターの Project エクスプローラーで、問題のコードを含むブックをアクティブにします。
-
[挿入] メニューの [標準モジュール] をクリックします。
新しいモジュールが挿入されたら、元の場所からコードを切り取り、Visual Basic モジュールに貼り付けます。 次に、ブックを保存します。
詳細情報
Excel では、VBA コードは、Visual Basic モジュール、Visual Basic クラス モジュール、および "ビハインド" ワークシートとブックの 3 つの異なる場所に格納できます。
ワークシートまたはブックの背後にあるコードを編集するには:-
Visual Basic エディターをアクティブにします (Alt キーを押しながら F11 キーを押します)。
-
[プロジェクト エクスプローラー] ウィンドウに、次のようなエントリが表示されます。
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
ワークシート名または ThisWorkbook のいずれかをダブルクリックすると、コード ウィンドウにコードを入力できます。 Visual Basic モジュールに含まれていないこのようなコードは、ワークシートまたは
Thisworkbook。 Auto_Open、Auto_Close、またはその他の自動的に実行されるサブルーチンがワークシートまたは ThisWorkbook の背後に格納されている場合、ブックを開いたり閉めたり、サブルーチンを実行させるアクションを実行したりすると、正しく機能しない可能性があります。