SSブログ

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)

追記型名前範囲に使うと便利

Excel_userkansuu_name_01.png
Excel_userkansuu_name_02.png

=SUM(OFFSET(A1,0,0,last_row(1),1)) こんな使い方もできる。

Excel_userkansuu_sum_02.png

 

 

 

 

 

 

 

 


タグ:Excel2000 VBA
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。