指定位置から列の下までのRangeを取得

指定位置(C2)から、列の下(C18)までのRangeを取得します。
Range型に範囲(C2:C18)がセットされるようにします。Range に対して選択をしています。

【サンプルプログラム】

Sub SapmelProgram()
    Dim rng As Range
    ' C2からの最終行(下から)までのRangeを取得
    Set rng = GetLastRowRange(ActiveSheet, "C2")
    ' 取得したRangeを選択状態にする
    rng.Select
End Sub

【関数化】

' ------------------------------------------------------------
' 説明:指定した列(列番号名)の最終行(下から)までのRangeを取得
' 引数:1:処理対象のワークシート 省略時はActiveSheet
'       2:基準となる Range を指定 省略時は "A1"
' 戻値:指定した位置から、列の最終行までを選択したRange
' ------------------------------------------------------------
' 指定した列(列番号名)の最終行(下から)までのRangeを取得
Function GetLastRowRange(Optional ByVal ws As Worksheet = Nothing, Optional column As String = "A1") As Range
    Dim rng1 As Range
    Dim rng2 As Range
    
    If ws Is Nothing Then
        Set ws = ActiveSheet
    End If
    
    ' 指定のRangeをセット
    Set rng1 = Range(column)
    
    ' 指定行の一番下までをセット
    Set rng2 = Range(Cells(Rows.Count, rng1.column).Address)
    
    ' 指定のRangeから最終行(下から)までを範囲とする
    Set GetLastRowRange = rng1.Resize(rng2.End(xlUp).Row - rng1.Row + 1)
    
End Function

コメント