HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > 特定のセルが見えるようにスクロールする(Gotoメソッド)

特定のセルが見えるようにスクロールする(Gotoメソッド)|Excel VBA

セル操作関連のテクニック

特定のセルが見えるようにスクロールする(Gotoメソッド)

(Excel 97/2000/2002/2003/2007/2010/2013)

1画面に収まらないほどたくさんのデータがあるとします。
このワークシートから特定のデータを検索してそのセルを選択するには、いろいろな方法がありますが、For...Nextステートメントを使う場合は次のようにします。

Sub Sample1()
    Dim i As Long
    For i = 1 To 1000
        If Cells(i, 1).Value = "もうぐ 太郎" Then
            Cells(i, 1).Activate
            Exit For
        End If
    Next i
End Sub

このマクロを実行するとき、現在表示されている画面に "もうぐ 太郎" が見えていたらアクティブセルがそこに移動します。
現在表示されている画面になかった場合は、検索されたセルが画面の中心あたりに表示されるように、画面がスクロールします。
これは、Findメソッドを使った検索でも同じです。

では、見つかったセルを、画面の左上に表示するにはどうしたらいいでしょう。
これには、ApplicationオブジェクトのGotoメソッドを使います。

Sub Sample2()
  Dim i As Long
  For i = 1 To 1000
    If Cells(i, 1) = "もうぐ 太郎" Then
      Application.Goto Cells(i, 1), True
      Exit For
    End If
  Next i
End Sub

Gotoメソッドをワークシート上で使うとアクティブセルが移動しますが、このとき、2番目の引数「Scroll」にTrueを指定すると、そのセルが画面の左上(ウィンドウ枠の固定が設定されている場合は、見出し行のすぐ下)になるように自動的にスクロールします。