エラー再現手順
- Sheet2 を表示
- 標準モジュールで VBA を実行
- Worksheets(“Sheet1”).Range(“A1”).Select で次のエラー発生
実行時エラー ‘1004’: Range クラスの Select メソッドが失敗しました。
エラー再現エクセル・VBA コード
- エクセルにシートを2つ用意する。「Sheet1」「Sheet2」
- VBA では、標準モジュールを挿入してそこにコードを書く。
Option Explicit Sub Test() Worksheets("Sheet1").Range("A1").Select End Sub
修正 VBA コード
- Worksheets.Activate メソッドを Select の前に実行すればよい。
Option Explicit Sub Test() Worksheets("Sheet1").Activate Worksheets("Sheet1").Range("A1").Select End Sub
補足。表示エラーが異なるケースの内容と原因
標準モジュールではなく、ThisWorkbook にコードを書いた場合、次のエラーとなりました。なぜ目的のエラー表示を再現できないのかしら?と少しの間悩みましたわ><。
実行時エラー ‘1004’: アプリケーション定義またはオブジェクト定義のエラーです。
おわりに
複数のシートをまたがっての処理をプログラミングしておりますと、今回のような箇所でエラーが発生いたします。
開発中は、対象となるシートをずっとアクティブにしたまま作業いたします。
そのため、他のシートがアクティブな状態で正常に動くかどうかまで頭が回りませんでしたの><。
最後に、問題解決に役立ちました、参考ページです。ありがとう存じます!
以上です。