「vba 最初のセル」
「VBA セル範囲の左上」
「VBA Range セル範囲 先頭セル」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスが時折あります。
いずれかのセル範囲の、
最初のセル
先頭のセル
1番左上のセル
を取得するには、どのようなコードを書けばいいのか、探していた方による検索でしょう。
Itemの引数を1つだけ指定して先頭セルを取得するサンプルマクロ
Rangeオブジェクトに用意されているItemプロパティの、第1引数に「1」を指定すれば、
セル範囲の先頭セルを取得できます。
Dim rng As Range
Set rng = Range("A1:C2").Item(1)
rng.Select
MsgBox rng.Address(False, False)
End Sub
上記のSubプロシージャを実行すると、
セル範囲A1:C2の先頭セルであるA1セルが選択され、
Set rng = Range("A1:C2").Item(1)
rng.Select
メッセージボックスに先頭セルのアドレス「A1」が表示されます。
MsgBox rng.Address(False, False)
選択されているセル範囲の、先頭セルを取得したい場合は、
Set rng = Range("A1:C2").Item(1)
の部分を、
Set rng = Selection.Item(1)
あるいは、
Set rng = ActiveWindow.RangeSelection.Item(1)
にしてください。
Itemの引数を2つ指定して先頭セルを取得する
単純に先頭セルを取得するだけなら、上記のとおりRange.Itemプロパティの1つの引数に「1」を指定すれば済みますが、以下のような指定もできます。
Dim rng As Range
Set rng = Range("A1:C2").Item(1, 1)
rng.Select
MsgBox rng.Address(False, False)
End Sub
RangeオブジェクトのItemプロパティは引数を2つ指定することもでき、この場合は何行目かを第1引数に、何列目かを第2引数に指定します。
これも、
Set rng = Range("A1:C2").Item(1, 1)
を、
Set rng = Selection.Item(1, 1)
や
Set rng = ActiveWindow.RangeSelection.Item(1, 1)
にすれば選択されているセル範囲の、先頭セルを取得できます。
Range.Itemプロパティを確認する
RangeオブジェクトのItemプロパティをご存知ない方は、以下のSubプロシージャを実行して、コレクションとしてのRangeオブジェクトから、Itemプロパティを使って単独のRangeオブジェクトを取得できることを意識しておきましょう。
Dim i As Long
For i = 1 To Range("A1:C2").Count
Range("A1:C2").Item(i).Select
MsgBox Range("A1:C2").Item(i).Address(False, False)
Next i
End Sub
最終更新日時:2023-05-25 14:56
- Newer:ActiveChartでChartを取得できたか確認する
- Older:OFFSET関数で連番を振る
Home » Excel VBA Rangeオブジェクト » 先頭セル・1番左上のセルを取得する-Range.Item(1)