【Excel VBA】「実行時エラー ‘1004’: Range クラスの Select メソッドが失敗しました。」への対処!

スポンサードリンク


エラー再現手順

  1. Sheet2 を表示
  2. 標準モジュールで VBA を実行
  3. 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’: アプリケーション定義またはオブジェクト定義のエラーです。

おわりに

複数のシートをまたがっての処理をプログラミングしておりますと、今回のような箇所でエラーが発生いたします。

開発中は、対象となるシートをずっとアクティブにしたまま作業いたします。

そのため、他のシートがアクティブな状態で正常に動くかどうかまで頭が回りませんでしたの><。

最後に、問題解決に役立ちました、参考ページです。ありがとう存じます!

以上です。

コメントを残す