アクティブセルはActiveCellプロパティを利用する

アクティブセルを表すプロパティとしてActiveCellプロパティがあります。

アクティブセルは黒い枠線で囲まれた選択範囲の中で、白抜きになっているセルのみが対象になります。

以下の画像では赤枠部分がアクティブセルになります。

アクティブセルは必ず1つのセルに限定され、複数のセルが同時にアクティブセルとして扱われることはありません。

ActiveCellプロパティはRangeオブジェクトを返します。

そのため、ActiveCellのあとにドット(.)を入力すると、Rangeオブジェクトのメソッドやプロパティが入力候補として表示されます。

ActiveCellの親オブジェクト

ActiveCellプロパティはグローバルメンバーとして登録されているため、親オブジェクトを省略して書くことができますが、WindowオブジェクトやApplicationオブジェクトの子プロパティとしても登録されています。

Windowオブジェクトについては以下をご参照ください。
VBAでアクティブウィンドウを参照する
VBAでウィンドウを参照する

そのため、以下のように状況に合わせた書き方が可能です。

 

アクティブセルの座標や行や列の位置

セルの位置を表す場合はActiveCell.Addressプロパティが便利です。

Addressプロパティには引数を設定することで座標の形式を変えることが出来ます。

また、行位置はRowプロパティ、列位置はColumnプロパティで取得できます。

各プロパティの詳細については以下を参照ください。
セルのアドレスを取得する
セルの行番号や列番号を取得する

以下はC5セルをアクティブセルにしたあとにAddressプロパティ、Rowプロパティ、Columnプロパティを使う例です。

 

ActiveCellプロパティをRangeオブジェクトに代入して使う

ActiveCellプロパティをそのまま使ってもRangeオブジェクトとして利用できるため問題ありませんが、Range型の変数に代入して利用したい場合などは以下のようにコードを書きます。