ExcelVBA(マクロ)で特定のオブジェクトをアクティブにする方法/Activateメソッドの使い方

IT

Activateメソッドは、アクティブにする単一の対象を選ぶメソッドで、Selectメソッドとは似て非なるものです。
単一のセルに対して行う場合、Selectされたセルは自動的にActivateされます。

Advertisements

Activateメソッドの使い方

シートのActivate

activate1
ワークシートをActivateする場合、基本的な使い方としては、Worksheets(2).Activateとか、
activate2
Worksheets(“Sheet1”).Activateのようにして対象のシートを指定し、Activateメソッドを実行します。
activate3
結果、対象のシートがアクティブになる=作業中の状態になります。
activate4
このように単一シートを選択する場合、Worksheets(“Sheet1”).Selectと同じ挙動になります。

セルのActivate

cellactivate1
基本的にはシートと同じ感じです。Range(“C3”).Activateを実行すれば、
cellactivate2
アクティブシートのC3セルがアクティブ化されます。
cellactivate4
注意すべきは、ひとつの命令でシートとセルを同時にアクティブ化することはできないということです。
セルのアクティブ化は、アクティブなシートに対してしか行えません。
Worksheets(2)のセルをアクティブ化しようとしたのに、Worksheets(2)がアクティブでない場合はエラーになります。
cellactivate5
なので、特定シートのセルをアクティブ化したい場合は、先にそのシートをActivateする必要があります。
図のように別々に指定すれば、問題なく特定シートのセルをActivateできます。

Activateで範囲選択

cellactivate6
Activate自体は単一の対象をアクティブ化するメソッドですが、Select的に範囲選択も可能です。
cellactivate7
実行結果はこんな感じ。左上のセルだけがアクティブセルとなります。

ActivateとSelectのちがい

cellactivate9
ActivateとSelectの顕著なちがいとしては、①すでに範囲を選択していて②対象が選択範囲内の場合、
cellactivate8
Activete(Range(“C3”).Activate)では選択範囲はそのままにしてアクティブセルが変わり、
cellactivate10
Select(Range(“C3”).Select)では選択範囲そのものが変わります。
activate5
シートの場合も同様。こんな感じで範囲選択をしている状態から、
activate7
Activate(WorkSheets(3).Activate)では範囲選択はそのままキープされ、
activate6
Select(WorkSheets(3).Select)では範囲選択を解除し、選択シートを変更します。
Excel(エクセル):ワークシート
ワークシート関連の操作方法まとめです。 ワークシートの使い方 ワークシートの作成・削除・挿入など、基本操作まとめです。 ワークシートのコピーについてです。 ブック間でやりとり 特定のシートを別の...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント