目次

実行時エラー '1004'

今回の投稿では、 Excel VBA の Select メソッドでエラーが発生した場合の対処方法を書いていきたいと思います。

実行時エラー'1004' Range クラスの Select メソッドが失敗しました。
実行時エラー'1004' Range クラスの Select メソッドが失敗しました。

目次まで戻る

エラーの再現

まずは、エラーの再現をしてみたいと思います。

下記のマクロを作成してみました。「Sheet1」の「A1」セルを選択状態にするマクロになっています。

ワークブックには、「Sheet1」「Sheet2」「Sheet3」が存在しています。

Sub selectメソッドでエラーが発生するマクロ()

Worksheets("Sheet1").Range("A1").Select

End Sub
「Sheet2」が選択されている状態です。
「Sheet2」が選択されている状態です。

上記のマクロを、「Sheet2」または「Sheet3」から呼び出して実行すると、実行時エラー'1004'が発生してしまいます。

「Sheet1」から実行すると正常に処理が完了します。「Sheet1」以外のワークシートからマクロを実行するとエラーが発生しているようです。

「Graph」シートから実行した場合もエラーが発生してしまいます。

目次まで戻る

エラーを解消

今回のようなエラーの解消方法として、以下のマクロ作成してみました。

「Worksheets("Sheet1").Activate」の記述を追加して、「Sheet1」をアクティブにしてから、セル選択を行っています。

Sub selectメソッドでエラーが発生するのを回避するマクロ()

Worksheets("Sheet1").Activate 'この記述を追加してみました。先に「Sheet1」をアクティブにしておきます。

Worksheets("Sheet1").Range("A1").Select

End Sub

上のマクロを実行すると、ワークシート「Sheet1」がアクティブになり、セル「A1」が選択状態になると思います。「Sheet1」以外のワークシートからマクロを実行してもエラーが発生しないと思います。

目次まで戻る

テスト環境

  • Windows 10
  • Microsoft Office Excel 2003

目次まで戻る

あとがき

エラーの発生源、解消方法は色々とあると思いますので、一例としてご覧ください。

以上閲覧ありがとうございました。

目次まで戻る

前後の投稿