Excel VBAでセルを選択する:Select

Excel ではセルをクリックすると選択状態になります。これを VBA で実現する場合は、Range オブジェクトの Select メソッドを使います。ここでは、Select メソッドの使い方と使う上での注意点について説明します。

Select の使い方

Select の構文は以下のように記述します。

Range オブジェクトで指定した範囲のセルが選択状態になります。

セルを指定して選択する

以下は  B3 を選択状態にする例です。

vba_select1

範囲を指定して選択する

Range オブジェクトで範囲を指定してセルを選択することもできます。

vba_select2

離れたセルを選択する

Range オブジェクトで指定すれば、離れたセルも同時に選択できます。

vba_select3

Cells プロパティでセルを選択する

Range プロパティではなく、Cells プロパティで取得した Rangeオブジェクトを使うこともできます。

アクティブなシート以外は選択状態にできない

Select メソッドはアクティブなシート以外では使用することができません。たとえば、Sheet1 を表示している状態で次のコードを実行するとエラーになります。

エラーとなる原因は、Sheet2 はアクティブではないためです。Sheet2 のセルを選択状態にしたい場合は、Sheet2 をアクティブにした後、Select を実行します。

シートをアクティブ状態にするためには Activate メソッドを使用しますす。

以下は Sheet2 をアクティブにしてセル B2 を選択状態にする例です。

Select と Activate について

Select と Activate の動きはよく似ていますが、異なる動作をするメソッドです。

Select は選択するためのメソッドで複数のオブジェクトに対して使うことができます。Activate は操作対象を指定するためのメソッドで、基本的には1つのオブジェクトに対して使います。

たとえば、セル範囲 A1~C6 までを選択状態にし、B2 を操作対象の状態にしたい場合は以下のように記述することができます。

Worksheet オブジェクトも Select メソッドをもっていますが、 Range オブジェクトと同じような考え方で使うことができます。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて