「usedrange 1行目」
「UsedRange 開始行」
「usedrange 最初の行」
のような検索キーワードで、時折アクセスがあります。
Worksheetオブジェクトに用意されているUsedRangeプロパティで取得できるRangeオブジェクトから、
1行目のセル範囲を表すRangeオブジェクトのみを取得するには、どのようなコードを書けばいいのかを探していらしたのでしょう。
UsedRangeの1行目を取得するサンプルマクロ
例えば、B2:G7セルがUsedRangeであるようなワークシートをアクティブにして、以下のSubプロシージャを実行してください。
Dim rng As Range
Set rng = ActiveSheet.UsedRange.Rows(1)
rng.Select
MsgBox rng.Address(False, False)
End Sub
UsedRangeの1行目であるB2:G2セルが選択され、そのセル番地「B2:G2」がメッセージボックスに表示されます。
拙著『いちばんやさしいExcel VBAの教本』の、Lesson 63「行全体・列全体を表すRangeオブジェクトについて学習しましょう」で、Rowsプロパティをご紹介しています。
RowsプロパティはRangeオブジェクトにも用意されており、
RangeオブジェクトのRowsプロパティを使うと、特定のセル範囲の行を表すRangeオブジェクトを取得できます。
例えば、
Set rng = Range("B2:G7").Rows(1)
ならば、アクティブシートのセル範囲B2:G7の1行目であるB2:G2セルを表すRangeを取得できます。
この「Range("B2:G7")」の部分を「ActiveSheet.UsedRange」にしたのが、上記のコードです。
UsedRangeの行を順番に取得するサンプル
Range.Rowsプロパティで取得できる行を表すRangeオブジェクトの理解を深めるために、以下のSubプロシージャも実行してください。
Dim rng As Range
For Each rng In ActiveSheet.UsedRange.Rows
rng.Select
MsgBox rng.Address(False, False)
Next
End Sub
B2:G7セルがUsedRangeである場合、
B2:G2
B3:G3
B4:G4
B5:G5
B6:G6
B7:G7
の順に、選択されそのアドレスがメッセージボックスに表示されます。
最終更新日時:2022-02-22 17:28
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » UsedRangeの1行目を取得する