Excel VBA – 最終行の取得 その2

  • このエントリーをはてなブックマークに追加

はじめに

前回紹介した、最終行の取得方法だと
以下の画像のように、歯抜けでデータが入力されている場合は
対応することができません。

150629-1

歯抜けの時の最終行取得

歯抜けでデータを入力する可能性がある場合の
最終行の取得方法は以下のサンプルプログラムで対応出来ます。

'メイン
Sub main()

    '最終行の取得
    
    MsgBox "最終行は" & getMaxRow & "です。"


End Sub

'最終行の取得
Function getMaxRow() As Long

    Dim maxRow As Long
    
    '最終行の取得
    maxRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    '戻り値
    getMaxRow = maxRow

End Function

これは、イメージとしては、
一番下の行からキーボードで「CTRL + ↑」を入力して
一番最初にぶつかった入力行の行数を取得するイメージです。

さいごに

当サンプルの欠点は、
下記の画像の様に
データ行の下に、注記などを入れた場合、上手く行数が取得できなくなります。
画像の例だと、注記の行数が取得されてしまいます。

150629-2

なので、最終行を取得する項目の下には何も入力しないなど、
ルールを定めるようにしてください。

─────────────── ★
中小企業診断士 かとう
専門は、IT活用による業務改善です。
★───────────────

お勧め:

  • このエントリーをはてなブックマークに追加

関連記事

  1. Excel VBA – 必見!プログラム関数の探し方のコツ
  2. Excel VBA – 2010 2013 マクロの…
  3. Excel VBA – CSVファイルをxlsxファ…
  4. Excel VBA – ブックを開く・閉じる(ope…
  5. Excel VBA – 最終行の取得 その1
  6. Excel VBA – 必見!関数の引数をコンパクト…
  7. Excel VBA – パスワード付きZIPファイル…
  8. Excel VBA – VBAでHashMapを実現…
PAGE TOP