Excel VBAでセルをアクティブするには「Activate」メソッドを使います。
「Activate」と「Select」の違いも記載しています。
< スポンサーリンク >
「Activate」メソッド構文
式.Activate
セルをアクティブにする
B3セルをアクティブにします。
Sub CellActivateTest1()
Range("B3").Activate
End Sub
Worksheetオブジェクトを省略した場合は、アクティブなワークシートのセルが対象になります。
ワークシートを指定したい場合は
Sub CellActivateTest2()
Worksheets("Sheet2").Activate
Worksheets("Sheet2").Range("B5").Activate
End Sub
先に「Worksheets(“Sheet2”).Activate」を書いていないとエラーになります。
ActivateとSelectの違い
「Activate」メソッドと「Select」メソッドは似たような動作をします。
Activateは、実行可能な状態(アクティブ)にするということで、ブックやシートだと複数のブックやシートの最前にきますし、セルだと入力可能な状態です。
なので、「アクティブではないシートのアクティブセル」というのはありえないことです。
Selectは、選択するということ。複数のシートやセルが選択できます。
Sub CellActivateTest3()
Range("B3:D7").Select
Range("C4").Activate
End Sub
とVBEに記述し実行すると下図のようになります。
SelectでB3~D7を選択し、ActivateでC7をアクティブにした状態です。
それならば、Activateメソッドを使うときは、1つのものしか指定できないのか・・・というと、そうでもなく・・・
Sub CellActivateTest4()
Range("B3:D7").Activate
End Sub
と記述し実行してみると、下図のようにSelectと同じ動きをしてくれます。
Activateメソッドは1つのものしか指定できないのなら、ActivateメソッドとSelectメソッドの違いが理解しやすいんですけどね。
こんな記事も書いています