Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » UsedRangeの1行目を取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2201 ビルド14827.20192 Microsoft Store)

「usedrange 1行目」
「UsedRange 開始行」
「usedrange 最初の行」
のような検索キーワードで、時折アクセスがあります。

Worksheetオブジェクトに用意されているUsedRangeプロパティで取得できるRangeオブジェクトから、

1行目のセル範囲を表すRangeオブジェクトのみを取得するには、どのようなコードを書けばいいのかを探していらしたのでしょう。

[スポンサードリンク]

UsedRangeの1行目を取得するサンプルマクロ

例えば、B2:G7セルがUsedRangeであるようなワークシートをアクティブにして、以下のSubプロシージャを実行してください。

Sub UsedRangeの1行目を取得する()
 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プロシージャも実行してください。

Sub UsedRangeの行を順番に取得する()
 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 » ExcelVBA Rangeオブジェクト » 行・列を表すRange » UsedRangeの1行目を取得する

「行・列を表すRange」の記事一覧

検索


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

.