EXCEL2000 VBA 最終行を調べる関数を作った。 [Excel2000 VBA独習]
EXCEL2000 VBA 最終行を調べる関数を作った。
Excelの関数で、空白の有る列の最終入力の有る行番号を調べる関数がない?ので作ってみた。
Excelでは
=OFFSET(B1,COUNTA(B:B)-1,0)
=INDEX($B:$B,COUNTA($B:$B),1)
=MAX(INDEX((LEN(A1:A65534)>0)*ROW(A1:A65534),0)) 空白が有ってもOK
な感じで最終行を調べる(空白が有ると上手くいかない)
Function last_rowN(col As Variant)
'最終行番号を返す
last_rowN = Cells(65536, col).End(xlUp).Row
End Function
作り方
ブックを新規作成
VBEを起動して上記のコードを記入
ファイル名を****.xla で保存
Excelのメニューバー→ツール→アドイン で、ダイアログの参照ボタンを押し先ほど保存したxlaファイを選択しアドインにする
Excel なら A列の最終行番号を調べるには、=last_rowN("A")、=last_rowN(1)とセルに記入
VBA なら a=last_rowN(selection.column)
本当は、=SUM(A1:"A" & last_rowN("A")) のように利用したかったが、エラーが出てダメだった、残念
追記
関数名をlast_rowN から last_row に変更
="A" & TEXT(last_row("A"),0) はOK
=sum("A1":("A" & TEXT(last_row("A"),0))) はNG
A2から入力のある最終行まで選択(可変範囲指定で、エクセルの関数を駆使して作るより簡単!)
=OFFSET(List!$A$2,0,0,last_row("A"),1)
追記型名前範囲に使うと便利
=SUM(OFFSET(A1,0,0,last_row(1),1)) こんな使い方もできる。
コメント 0