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

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

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

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

いずれかのセル範囲の、最初のセル・先頭のセル・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)
としてください。

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)
とすれば選択されているセル範囲の、先頭セルを取得できます。

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

最終更新日時:2018-10-30 05:00

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

検索


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

.