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

IT

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

スポンサーリンク

Activateメソッドの使い方

シートのActivate

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

セルのActivate

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

Activateで範囲選択

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

ActivateとSelectのちがい

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

コメント

モバイルバージョンを終了