メニュー

Home >Microsoft Office Excel>マクロ/VBA> ExcelVBAで最終行の取得例

【Microsoft Office Excel】【マクロ/VBA】ExcelVBAで最終行の取得例

2015/06/03 11:47|タグ:最終行Endプロパティグッジョブ表示 23

A1セルから下方向へ歯抜けのないデータが入っているとします。
A1セルからデータの入っている最終行を求める時は、

Sub GetMaxRow()
'====================================================================================
' 最終行を求めるマクロ
'====================================================================================
ThisWorkbook.Activate
    Dim maxRow As Long
    maxRow = ActiveSheet.Range("A1").End(xlDown).Row

    MsgBox("このシートの最終行は" & maxRow & "です。")
End Sub

 で取得できます。

しかし、A1セルにデータが入っていない場合、また、A2セルにデータが入っていない場合、上記マクロを動かすと、ワークシートの最大列(Excel2010の場合は1048576)を取得してしまいます。

よって、A1セルにデータが入っていた場合、A2セルにデータが入っていた場合を判断し、条件分岐で振り分けた例が下記のとおりです。

Sub GetMaxRow()
'====================================================================================
' 最終行を求めるマクロ
'====================================================================================
ThisWorkbook.Activate
    Dim maxRow As Long

    If Len(ActiveSheet.Range("A1").Value) = 0 Then
        maxRow = 0
    ElseIf Len(ActiveSheet.Range("A2").Value) = 0 Then
        maxRow = 1
    Else
        maxRow = ActiveSheet.Range("A1").End(xlDown).Row
    End If

    MsgBox("このシートの最終行は" & maxRow & "です。")
End Sub

もっとスマートな方法がありそうですが、とりあえずメモメモ。

ページ移動

関連エントリー

コメント

  • コメントはまだありません。

コメント登録

登録フォーム
名前
メールアドレス
URL
コメント
投稿キー(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

新着コメント

Twitter

サイト内検索

ページ上部へ