実行時エラー’1004′:を出さずにアクティブでないシートの特定セルを1行のコードで選択する方法(Excel VBA)

【本日のミッション】

「実行時エラー ’1004′:RangeクラスのSelectメソッドが失敗しました。」

のエラーを出さずに、アクティブではないシートの指定したセルを選択せよ。なお、選択したセルはシートの左上に表示されるようにせよ。

ミッションの概要

VBA(マクロ)処理の直後、処理しっぱなしの状態で画面表示されていると、ちょっとがっかりしませんか?

「飛ぶ鳥跡を濁さず」の気持ちで、何事もなかったように画面を整えましょう。

VBA(マクロ)で処理しているシートと、表示したいシートが異なる場合、指定したシートの指定したセルを表示させましょう!

というミッションです。

実行時エラー'1004':を出さずにアクティブでないシートの特定セルを1行のコードで選択する方法(Excel VBA)

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
実行時エラー'1004':を出さずにアクティブでないシートの特定セルを1行のコードで選択する方法(Excel VBA)

■■■スポンサーリンク■■■

プロシージャ

Sub 指定シート指定セル選択()
    Application.Goto Reference:=Worksheets("メイン").Range("A1"), Scroll:=True
End Sub

Application.Goto メソッド で、非アクティブシートのセルを表示

Application.Goto(Reference, Scroll)
引数説明省略
Reference移動先を指定します。
Range オブジェクト 、R1C1 形式のセル参照文字列、Visual Basic のプロシージャ名を表す文字列で指定します。
ScrollTrue移動先セル範囲の左上端がウィンドウの左上端に表示されるようにウィンドウをスクロールします。
Falseウィンドウをスクロールしません。(既定値)
Application.Goto Reference:=Worksheets("メイン").Range("A1")

「Reference」に移動先のシート・セルを指定することで、そのセルを表示させることができます。

Application.Goto Reference:=Worksheets("メイン").Range("A1"), Scroll:=True

「Scroll」に「True」を指定することで、「Reference」で指定したセルをウィンドウの左上に表示させることができます。

実行時エラー'1004':を出さずにアクティブでないシートの特定セルを1行のコードで選択する方法(Excel VBA)

セルA2にウィンドウ枠の固定の設定がある場合、「Scroll」が規定値の「False」のままだと・・・

選択セルは「A1」になりますが、ウィンドウ枠の固定設定の下画面がスクロールされず、中途半端な表示になります。

実行時エラー'1004':を出さずにアクティブでないシートの特定セルを1行のコードで選択する方法(Excel VBA)

ウィンドウ枠の固定が設定してある場合は、「Scroll:=True」の引数も忘れずに記載しましょう。

Select・Activeメソッドではシートの表示切替ができない

以前、このようなコードを書いてエラーが出たことがあります。

Sub 指定シート指定セル選択うまくいかない例1()
    Worksheets("メイン").Range("A1").Select
End Sub
 
Sub 指定シート指定セル選択うまくいかない例2()
    Worksheets("メイン").Range("A1").Activate
End Sub

メインシート以外のシートがアクティブになっている状態で、メインシートの特定セルを選択しようとすると、下記のエラーが表示されます。

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

実行時エラー'1004':を出さずにアクティブでないシートの特定セルを1行のコードで選択する方法(Excel VBA)

Worksheets("メイン").Range("A1").Activate

先にメインシートをアクティブにしてからでないと、セルの選択に「Selectメソッド」「Activeメソッド」を使うとエラーが出てしまうのです。

参照

「数字が文字列として保存されています。」を一括で数字に変換
データが増減しても参照先を変更しない名前の管理(Excel)
連動するドロップダウンリストを名前の管理・入力規制・OFFSET・INDIRECTを使って「リストが表示されない」を解決(Excel)
Excel 複数セル内の改行(Alt+Enter)を一括で解除する方法
Excel関数を使って 縦の表に連動した(リンクした)横の表を一括で作成せよ
ワイルドカードとは。使い方いろいろ。(Excel)
Excelの改ページの点線を消す方法
Excelの背景にある薄グレーの枠線(罫線)を消す(非表示)方法
非表示になってしまった列を表示させる方法
ファイルを開くと空の画面も同時に開くのを解決(Excel)
図 画像 グラフ ボタン などのオブジェクトが消えてしまった時の表示方法(Excel)
大量の画像やグラフ等のオブジェクトで画面表示が遅いのを解決(Excel)
保護されたシートに対して、このコマンドは使用できません。テーマが変えられない現象を解決(Excel)
離れた複数列をまとめて列番号(数字)で選択する方法(Excel VBA)
Excel VBA で選択した複数のセルにデータ・数式を(Ctrl+Enter のように)一気に入力する方法
離れた複数列を列番号(数字)で指定して、列幅変更する方法(Excel VBA)
エクセル フォームのラベルのテキストを縦書きにする方法(Excel VBA)
Youtubeで画質が変更できない、イヤホンがおかしい現象を解決
実行時エラー’1004′:を出さずにアクティブでないシートの特定セルを1行のコードで選択する方法(Excel VBA)

■■■スポンサーリンク■■■