「usedrange 1行目は対象外」
といった検索キーワードでのアクセスに気付きました。
UsedRangeの1行目を除外したセルを選択するサンプルマクロ
いろいろな方法が考えられますが、以下のSubプロシージャはいかがでしょう。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 » Excel VBA Rangeオブジェクト » UsedRangeの1行目を除外したRangeを取得・選択する