更新日:、 作成日:
VBA 最終列を取得する
はじめに
Excel VBA マクロで最終列を取得する方法を紹介します。
Range.End メソッドから、行の最終列を取得できます。
Range.Columns.Count プロパティから、セルの範囲の最終列を取得できます。
UsedRange プロパティから、シート全体で使用している最大範囲の最終列を取得できます。
行の最終列を取得
行に連続したデータのあるセルの最終列を取得するには Range.End(xlToRight) のように入力します。
これは Excel で Ctrl + → キーを入力したときと同じセルを取得できます。
右以外にも次の方向を指定できます。
定数名 | 値 | 説明 |
xlUp | -4162 | 上端 |
xlDown | -4121 | 下端 |
xlToLeft | -4159 | 左端 |
xlToRight | -4161 | 右端 |
セル「B2」の右方向の最終列を取得するには Range("B2").End(xlToRight).EntireColumn を入力します。
Dim r As Range
Set r = Range("B2").End(xlToRight).EntireColumn ' B2 の最終列を取得
Set r = ActiveCell.End(xlToLeft).EntireColumn ' アクティブセルの最終列を取得
r.Select
セル「B2」の右方向は「F2」を、セル「B3」の右方向は「C3」を取得します。
3 行目のように途中に空のセルがあると、その前のセルが取得されます。
行の最終列
行の最終列を取得するには、一番右の列から左方向にセルを取得します。
行「3」の最終列を取得するには次のようにします。
Dim r As Range
Set r = Cells(3, Columns.Count).End(xlToLeft).EntireColumn ' 3 は 3 行目
r.Select
スポンサーリンク
セルの範囲の最終列を取得する
セルの範囲の一番左の列番号を取得するには Range.Column のように入力します。
セルの範囲の列数を取得するには Range.Columns.Count のように入力します。
セルの範囲の最終列を取得するには Columns(Range.Column + Range.Columns.Count - 1) または Range.Columns(Range.Columns.Count).EntireColumn のように入力します。
Dim c As Range
Set c = Range("B2:D4") ' セルの範囲
Dim r As Range
Set r = Columns(c.Column + c.Columns.Count - 1) ' セルの範囲の最終列を取得
Set r = c.Columns(c.Columns.Count).EntireColumn ' セルの範囲の最終列を取得
r.Select
データの範囲の最終列を取得
指定したセルを囲むデータがある範囲を取得するには Range.CurrentRegion を入力します。
これは Excel で Ctrl + Shift + * キーを入力したときと同じセルを取得します。
後はセルの範囲の最終列を取得する方法と同じです。
Dim c As Range
Dim r As Range
Set c = Range("B2").CurrentRegion
Set r = c.Columns(c.Columns.Count).EntireColumn
Set c = Range("B6").CurrentRegion
Set r = c.Columns(c.Columns.Count).EntireColumn
Set c = Range("B10").CurrentRegion
Set r = c.Columns(c.Columns.Count).EntireColumn
r.Select
セル「B2」、「B6」、「B10」で実行すると、次の範囲の最終列を取得できます。
シート全体の最終列を取得する
シート全体で使用しているセルの最大範囲を取得するには UsedRange を入力します。
後はセルの範囲の最終列を取得する方法と同じです。
Dim c As Range
Set c = UsedRange ' 最大範囲を取得
Dim r As Range
Set r = Columns(c.Column + c.Columns.Count - 1) ' シート全体の最終列を取得
Set r = c.Columns(c.Columns.Count).EntireColumn ' シート全体の最終列を取得
r.Select
最大範囲とはシートに入力されている一番上、下、左、右のセルの範囲です。書式設定されているセルも含まれます。
スポンサーリンク