VBAにおいて、
特定の行・列に対しての最終行・列の取得は
ネットによく記載されているが、
ワークシートに対しての最終行・列の取得は
見かけないので、
関数として作成してみた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
'最終行取得関数 Function getLastRow_WS(WS As Worksheet) As Long Dim LastRow As Long Dim getData As Variant Dim endFlag As Boolean getData = WS.UsedRange getLastRow = 0 endFlag = False Dim Cl As Long, Ro As Long For Ro = UBound(getData, 1) To 1 Step -1 For Cl = UBound(getData, 2) To 1 Step -1 If getData(Ro, Cl) <> "" Then getLastRow_WS = Ro + WS.UsedRange.Row - 1 endFlag = True Exit For End If Next If endFlag = True Then Exit For End If Next End Function |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
'最終列取得関数 Function getLastColumn_WS(WS As Worksheet) As Long Dim LastRow As Long Dim getData As Variant Dim endFlag As Boolean getData = WS.UsedRange getLastColumn = 0 endFlag = False Dim Cl As Long, Ro As Long For Cl = UBound(getData, 2) To 1 Step -1 For Ro = UBound(getData, 1) To 1 Step -1 If getData(Ro, Cl) <> "" Then getLastColumn_WS = Cl + WS.UsedRange.Column - 1 endFlag = True Exit For End If Next If endFlag = True Then Exit For End If Next End Function |
コメント