【Excel VBA】指定したセルやワークシート・ブックをアクティブにするActivateメソッド

皆さんが普段Excelで何かしらの表などを作成する際、マウスなどで範囲を選択して罫線を引いたり、文字を入力したりする際、その対象となるセルやシート、ブックをアクティブにする必要があります。

「アクティブ」とは「今現在操作できるもの」といえます。

たとえば、何らかの文字をキーボードでタイプしたら入力されたセル・シート・ブックがアクティブだといえます。

Excel VBAではアクティブにするためにActivateメソッドが存在します。

今回は指定したセルやワークシート・ブックをアクティブにするActivateメソッドについてまとめていきます。

Activateメソッドの基本構文

オブジェクト.Activate

オブジェクト

Activateメソッドの対象のオブジェクトを指定します。

セルとワークシートとワークブックが主な対象となります。

オブジェクトに関しては下記記事をご参照ください。

Excelのオブジェクトの基礎知識まとめ | Excelを制する者は人生を制す ~No Excel No Life~

使用例①【単一セル選択】

もっともオーソドックスな使用例として単一セルをアクティブにする場合、対象のオブジェクトはRangeプロパティで取得します。

Rangeプロパティに関しては下記記事をご参照ください。

【Excel VBA】単一セルやセル範囲を参照するRangeプロパティまとめ | Excelを制する者は人生を制す ~No Excel No Life~

Activateメソッド①

マクロの動作イメージ

Activateメソッド②

B5セルがアクティブセルになりました。

Rangeプロパティの他にもCellsプロパティでも単一セルのオブジェクトを指定することが可能です。(下記記事参照)

【Excel VBA】行と列を別々に指定してセルを参照するCellsプロパティまとめ | Excelを制する者は人生を制す ~No Excel No Life~


使用例②【複数セル選択①】

一般的にActivateメソッドでは複数セルを対象にはしませんが、やれなくはないです。

Activateメソッド③

マクロの動作イメージ

Activateメソッド④

B5:B6が選択されました。

アクティブセルはB5となります。

複数セルを対象にした場合、範囲の中の右上のセルになります。


使用例③【複数セル選択②】

使用例②と選択範囲はいっしょですが、アクティブセルを任意に指定したい場合はコードを追加してあげます。

Activateメソッド⑤

マクロの動作イメージ

Activateメソッド⑥

B5:B6が選択されました。

アクティブセルはB6となります。

一番目のActivateメソッドの箇所は本来Selectメソッドの方が視認性が良いです。

【Excel VBA】指定したセル範囲やワークシートを選択するSelectメソッド | Excelを制する者は人生を制す ~No Excel No Life~


使用例④【ワークシート選択】

続いて、ワークシートをアクティブにする場合はWorksheetオブジェクトを指定してあげます。

Activateメソッド⑦

マクロの動作イメージ

Activateメソッド⑧

Sheet1のワークシートがアクティブになりました。

使用例⑤【ワークブック選択】

ワークブックを選択する場合はWorkbookオブジェクトを指定してあげます。

Activateメソッド⑨

マクロの動作イメージ

Activateメソッド⑩

「Trvl_TravelPlanner1.xlsx」のワークブックがアクティブになりました。

まとめ

Activateメソッドは簡単なコードだとSelectメソッドとあんまり違いがわかりにくく同じ結果となることが多いです。

しかし、ある程度のコード量になると使い分けをしないとエラーが発生したり、希望の結果を得られなかったりします。

次回以降はActivateメソッドとSelectメソッドの違いについて解説していく予定です。


この記事が気に入ったら
いいね ! しよう

無料メルマガはじめました!(特典あり)

メールアドレスを登録すればブログではお伝えできない情報を無料で受信できます。
今なら特典として、サンプルファイルを無料でプレゼント中!
もっとエクセルをスキルアップしたい方は、ぜひご登録くださいm(__)m

ご案内

おすすめ記事