Excel ではセルをクリックすると選択状態になります。これを VBA で実現する場合は、Range オブジェクトの Select メソッドを使います。ここでは、Select メソッドの使い方と使う上での注意点について説明します。
Select の使い方
Select の構文は以下のように記述します。
1 |
Rangeオブジェクト.Select |
Range オブジェクトで指定した範囲のセルが選択状態になります。
セルを指定して選択する
以下は B3 を選択状態にする例です。
1 2 |
' セルB3を選択する Range("B3").Select |
範囲を指定して選択する
Range オブジェクトで範囲を指定してセルを選択することもできます。
1 2 |
' セルA3~E5を選択状態にする Range("A3:E5").Select |
離れたセルを選択する
Range オブジェクトで指定すれば、離れたセルも同時に選択できます。
1 2 |
' セルA3, セルC4, セルE5を選択状態にする Range("A3,C4,E5").Select |
Cells プロパティでセルを選択する
Range プロパティではなく、Cells プロパティで取得した Rangeオブジェクトを使うこともできます。
1 2 |
' CellsプロパティでRangeオブジェクトを取得して選択 Cells(3, 5).Select ' 3行目の5列目(セルE3) |
アクティブなシート以外は選択状態にできない
Select メソッドはアクティブなシート以外では使用することができません。たとえば、Sheet1 を表示している状態で次のコードを実行するとエラーになります。
1 2 |
' Sheet2のセルB2を選択状態にする Worksheets("Sheet2").Range("B2").Select |
エラーとなる原因は、Sheet2 はアクティブではないためです。Sheet2 のセルを選択状態にしたい場合は、Sheet2 をアクティブにした後、Select を実行します。
シートをアクティブ状態にするためには Activate メソッドを使用しますす。
1 |
Worksheetオブジェクト.Activate |
以下は Sheet2 をアクティブにしてセル B2 を選択状態にする例です。
1 2 3 4 5 |
' Sheet2 をアクティブ状態にする Worksheets("Sheet2").Activate ' セルB2を選択状態にする Worksheets("Sheet2").Range("B2").Select |
Select と Activate について
Select と Activate の動きはよく似ていますが、異なる動作をするメソッドです。
Select は選択するためのメソッドで複数のオブジェクトに対して使うことができます。Activate は操作対象を指定するためのメソッドで、基本的には1つのオブジェクトに対して使います。
たとえば、セル範囲 A1~C6 までを選択状態にし、B2 を操作対象の状態にしたい場合は以下のように記述することができます。
1 2 3 4 5 |
' セルA1~C6を選択 Range("A1:C6").Select ' セルB2を操作対象にする Range("B2").Activate |
Worksheet オブジェクトも Select メソッドをもっていますが、 Range オブジェクトと同じような考え方で使うことができます。
1 2 3 4 5 |
' Sheet1とSheet2を選択 Worksheets(Array("Sheet1", "Sheet2")).Select ' Sheet2を操作対象にする Worksheets("Sheet2").Activate |