Excel VBAの覚え書(Endプロパティ編)

2024-01-07

■RangeオブジェクトのEndプロパティ

Rangeオブジェクトのプロパティは多岐に亘りますが、中でもEndプロパティは少し毛色が変っているので、(頻繁に使っているにも拘らず)なかなか使い方を覚えられなくて困ります。

ということで、本稿はEndプロパティに絞った「覚え書」です。

Endプロパティの詳細

Microsoftのサイトで「Endプロパティ」を調べると、以下のように記載されています。

  • 集計元範囲を含む領域の終わりにあるセルを表すRangeオブジェクトを返します。
  • End+上方向キー、End+下方向キー、End+左方向キー、End+右方向キーのいずれかを押す操作と同等です。
  • 読み取り専用のRangeオブジェクト。

オブジェクト・ブラウザでEndプロパティを参照すると以下のように定義されており、確かに戻り値がRangeオブジェクトであることがわかります。

  1. Property End(Direction As XlDirection) As Range

引数として指定できるXlDirection列挙体は下表の通りです。

名前 説明
xlDown -4121 (&HFFFFEFE7) 下へ
xlToLeft -4159 (&HFFFFEFC1) 左へ
xlToRight -4161 (&HFFFFEFBF) 右へ
xlUp -4162 (&HFFFFEFBE) 上へ

■Endプロパティの使用方法

Endプロパティの代表的な使い方は、以下の通りです。

開始行の取得

データが格納されている領域の開始行を取得したい場合、ワークシートの先頭行のセルを指定して、「下へ」向って参照します。
⇒データが何も入っていないワークシートで以下のコードを実行した場合、取得される値はワークシートの最下行(『1048576』)になります。

  1. sht.Cells(1, 1).End(xlDown).Row

最終行の取得

データが格納されている領域の最終行を取得したい場合、ワークシートの最下行のセルを指定して、「上へ」向って参照します。
⇒データが何も入っていないワークシートで以下のコードを実行した場合、取得される値はワークシートの先頭行(『1』)になります。

  1. sht.Cells(sht.Rows.Count, 1).End(xlUp).Row

開始列の取得

データが格納されている領域の開始列を取得したい場合、ワークシートの左端のセルを指定して、「右へ」向って参照します。
⇒データが何も入っていないワークシートで以下のコードを実行した場合、取得される値はワークシートの右端(『16384』)になります。

  1. sht.Cells(1, 1).End(xlToRight).Column

最終列の取得

データが格納されている領域の最終列を取得したい場合、ワークシートの右端のセルを指定して、「左へ」向って参照します。
⇒データが何も入っていないワークシートで以下のコードを実行した場合、取得される値はワークシートの左端(『1』)になります。

  1. sht.Cells(1, sht.Columns.Count).End(xlToLeft).Column

 

国本温子(著),緑川吉行(著),できるシリーズ編集部(著)
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ

大村あつし(著),古川順平(著)
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ

国本温子(著),緑川吉行(著),できるシリーズ編集部(著)
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ

大村あつし(著),古川順平(著)
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ

高橋宣成(著)
出版社:技術評論社
発売日:2019/11/25
単行本(ソフトカバー):B5変形判/576ページ

覚え書

Posted by hides