Home » ExcelVBA Rangeオブジェクト » UsedRangeの1行目を除外したRangeを取得・選択する

UsedRangeの1行目を除外したRangeを取得・選択する

対象:Excel2010, Excel2013, Windows版Excel2016

「usedrange 1行目は対象外」
といった検索キーワードでのアクセスに気付きました。

[スポンサードリンク]

UsedRangeの1行目を除外したセルを選択するサンプルマクロ

いろいろな方法が考えられますが、以下のSubプロシージャはいかがでしょう。
Sub UsedRangeの1行目を除いたRangeを選択する()
 With ActiveSheet.UsedRange
  Range(.Item(2, 1), .Item(.Count)).Select
 End With
End Sub

サンプルマクロで利用していうオブジェクト式について

例えば、C3:G7セルを表すRangeオブジェクトがWorksheet.UsedRangeプロパティで取得できるとき、Range.Countプロパティ
  With ActiveSheet.UsedRange
   Range(.Item(2, 1), .Item(.Count)).Select
  End With
UsedRange・C3:G7セルに含まれるセルの個数「25」を取得できます。

その個数をRange.Itemプロパティの引数に指定することで
  With ActiveSheet.UsedRange
   Range(.Item(2, 1), .Item(.Count)).Select
  End With
UsedRange・C3:G7の最終セルであるG7セルを表すRangeオブジェクトを取得できます。

同じくRange.Itemプロパティの引数に「2行目1列目」を意味する「2」と「1」を指定すると、
  With ActiveSheet.UsedRange
   Range(.Item(2, 1), .Item(.Count)).Select
  End With
UsedRange・C3:G7セルの「2行目1列目」であるC4セルを表すRangeオブジェクトを取得できます。

以上の、C4セルを表す「.Item(2, 1)」をRangeプロパティの第1引数に、G7セルを表す「.Item(.Count)」をRangeプロパティの第2引数に、それぞれ指定すると、
  With ActiveSheet.UsedRange
   Range(.Item(2, 1), .Item(.Count)).Select
  End With
UsedRangeの1行目を除外した、C4:G7セルを表すRangeオブジェクトを取得できます。

その取得したRangeオブジェクトをSelectメソッドで選択しています。
  With ActiveSheet.UsedRange
   Range(.Item(2, 1), .Item(.Count)).Select
  End With

オブジェクトを取得するためのプロパティ

拙著『いちばんやさしいExcel VBAの教本』の、Lesson 52「プロパティは2種類あることを知っておきましょう」に、
プロパティは、大きく2種類に分類できます。オブジェクトが持つ単なるデータを取得するためのプロパティと、オブジェクトを取得するためのプロパティです。

と書きました。

この記事でご紹介しているSubプロシージャには、単なるデータを取得するためのプロパティは、1つだけ登場しています。
  With ActiveSheet.UsedRange
   Range(.Item(2, 1), .Item(.Count)).Select
  End With
のRange.Countプロパティです。

その他の
  ActiveSheet
  Worksheet.UsedRange
  Range
  Range.Item
は、オブジェクトを取得するためのプロパティです。
この中でもActiveSheetプロパティがWorksheetオブジェクトを取得するプロパティで、他はすべてRangeオブジェクトを取得するためのプロパティです。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » UsedRangeの1行目を除外したRangeを取得・選択する

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

検索


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

.