Excel VBA セルをアクティブにする

Excel VBAセルアクティブするには「Activate メソッド」を使います。

 

構文

式.Activate

 

セルをアクティブにする

Sub CellActivateTest1()
  Range("B3").Activate
End Sub

cell activate

 

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をアクティブにした状態です。

cell activate

 

それならば、Activateメソッドを使うときは、1つのものしか指定できないのか・・・というと、そうでもなく・・・

Sub CellActivateTest4()
  Range("B3:D7").Activate
End Sub

と記述し実行してみると、下図のようにSelectと同じ動きをしてくれます。

cell activate

Activateメソッドは1つのものしか指定できないのなら、ActivateメソッドとSelectメソッドの違いが理解しやすいんですけどね。

 

< スポンサードリンク >



サブコンテンツ

このページの先頭へ