Home » ExcelVBA Rangeオブジェクト » 先頭セル・1番左上のセルを取得する-Range.Item(1)

先頭セル・1番左上のセルを取得する-Range.Item(1)

動作検証バージョン:Windows版Excel(バージョン1809 ビルド10827.20138)

オブジェクトブウラウザー:Range.Itemプロパティ

「vba 最初のセル」
「VBA セル範囲の左上」
「VBA Range セル範囲 先頭セル」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスが時折あります。

いずれかのセル範囲の、
  最初のセル
  先頭のセル
  1番左上のセル
を取得するには、どのようなコードを書けばいいのか、探していた方による検索でしょう。

[スポンサードリンク]

Itemの引数を1つだけ指定して先頭セルを取得するサンプルマクロ

Rangeオブジェクトに用意されているItemプロパティの、第1引数に「1」を指定すれば、

オブジェクトブウラウザー:Range.Itemプロパティ

セル範囲の先頭セルを取得できます。

Sub 先頭セルを取得する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」を指定すれば済みますが、以下のような指定もできます。

Sub 先頭セルを取得する2
 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引数に指定します。

オブジェクトブウラウザー:Range.Itemプロパティ

これも、

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オブジェクトを取得できることを意識しておきましょう。

Sub RangeのItemプロパティを確認する()
 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

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 先頭セル・1番左上のセルを取得する-Range.Item(1)

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.