Excel VBA セルのActivateの使い方、ActivateとSelectの違い

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

Activate」と「Select」の違いも記載しています。

< スポンサーリンク >





「Activate」メソッド構文

式.Activate

 

セルをアクティブにする

B3セルをアクティブにします。

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メソッドの違いが理解しやすいんですけどね。

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします