こんにちは、Ryoです。
VBAで処理する際にセル指定にはSelectを使う場合が多いですが、シートを跨って移動したい場合に、対象シートをアクティブにする必要があり、少々面倒だったりします。
その手間をかけずに異なるシート間でもセルを指定するにはGotoを使う方法がありますので、今回はその内容について書いてみたいと思います。
1.サンプル概要
Sheet1がアクティブとなっており、セルA1が選択された状態からSheet2の表があるセルA5へ移動(ジャンプ)するサンプルとします。
Sheet1のセルA1から下の画像のセルA5へ移動(ジャンプ)させます。
2.サンプルコード
Sub Sample1() 'Sheet2のセルA5を選択し、画面左上の位置に表示させる Application.Goto Reference:=Worksheets("Sheet2") _ .Cells(5, 1), Scroll:=True End Sub
Gotoメソッドについては、
Application.Goto Reference:=移動(ジャンプ)したいセル .Cells(5, 1), Scroll:=True(False)
このような指定になります。
サンプルコードではSheet2のA5を指定しているので、Referenceの後にWorksheets(“Sheet2”).Cells(5,1)という形で指定していますが、同一シート内であれば、
Application.Goto Reference:=Cells(5, 1), Scroll:=TrueでOKです。
Scrollが不要であれば、Falseを指定するか以下の様に省略してもOKです。
Application.Goto Reference:=Worksheets(“Sheet2”) .Cells(5, 1)
Scrollについては、True指定の場合に画面左上の位置に表示されるというものです。
サンプルコードを実行すると、こうなります。
また単一セルだけではなく、範囲として指定することも出来ます。
サンプルの表全体を指定するサンプルコードは以下になります。
Sub Sample2() Application.Goto Reference:=Worksheets("Sheet2") _ .Range("A5:C10"), Scroll:=True End Sub
Range(“A5:C10”)の様に範囲指定するだけですね。
これで実行すると、こうなります。
このように単一セル、範囲共に使用出来ますので、用途に応じて使い分けることが出来ます。
3.まとめ
セルの移動は頻繁に使いますので、Selectと合わせてGotoの使い方も覚えておくと、地味に便利なことが多いですからお薦めです。
覚える記述自体も非常に簡単ですから直ぐに使えると思います。
以上、指定セルに移動(ジャンプ)する内容についてでした!
この内容が何かの参考になれば幸いです。
Ryo