当ページのリンクには一部広告が含まれています。
雑記

Excel VBA 表の最終列・最終行を取得する

© UsaNekoSanpo

最終列・最終行を取得する

うさこちゃん
うさこちゃん

「E4」に空白がある場合で記載しています。
End + 上方向キー、End + 下方向キー、End + 左方向キー、End + 右方向キーのいずれかを押す操作と同等の値を取得できますので、途中に空白がある場合は注意する必要があります。

パラメーター

名前説明
xlDown-4121下へ
xlToLeft-4159左へ
xlToRight-4161右へ
xlUp-4162上へ

サンプルコード

うさこちゃん
うさこちゃん

空白行がある場合は空白の手前で判断されますので開始位置は注意が必要です。
サンプルプログラムでは
行は”4”
列は”3”

になります。

右へ

Cells(検索行, 列開始位置).End(xlToRight).Column

下へ

Cells(行開始位置,検索列 ).End(xlDown).Row

    Dim ObjThisSh  As Object
    Dim LngColMax As Long
    Dim LngRowMax As Long
    
    Set ObjThisSh = ThisWorkbook.Sheets("Sheet1")

    With ObjThisSh
        LngColMax = .Cells(4, 1).End(xlToRight).Column '開始位置 A4(4, 1)
    
        LngRowMax = .Cells(2, 5).End(xlDown).Row '開始位置 E2(2, 5)
    End With
    

サンプルコード(シートの末端から探す)

うさこちゃん
うさこちゃん

サンプルプログラムでは最終行・列から探しますでの空白がある場合には有効です。
行は”11”
列は”10”

になります。

左へ

Cells(検索行, Columns.Count).End(xlToLeft).Column

上へ

Cells(Rows.Count, 索列).End(xlUp).Row

    Dim ObjThisSh  As Object
    Dim LngColMax As Long
    Dim LngRowMax As Long
    
    Set ObjThisSh = ThisWorkbook.Sheets("Sheet1")

    With ObjThisSh
        LngColMax = .Cells(4, .Columns.Count).End(xlToLeft).Column
    
        LngRowMax = .Cells(Rows.Count, 5).End(xlUp).Row
    End With
    
ExcelVBA逆引き大全 600の極意 Office365/2019/2016/2013/2010対応

ExcelVBAを仕事で使う際、「あれって、どうやるんだったっけ?」と困った時にサッと使うための逆引きテクニック集です。「コピペ使用に耐えうるサンプル」「スクショ画像を交えての丁寧な説明」「構文についてだけの情報もセットになっている」「関連するテクニックについての情報もすぐに引ける」という4つの条件を満たした情報をネットで探すのは非常に困難。デスクの片隅に常備したい1冊です。

できる大事典 Excel VBA 2019/2016/2013&Microsoft 365(サンプルファイル・無料電子版付)

VBAを使ってコードを記述するには、プログラミングの知識や基本構文の理解などが必要です。しかし、基本的な概念や仕組みだけを覚えても、VBAを使って柔軟にプログラムを記述するのはなかなか難しいもの。自分の思い通りにプログラムを記述するには、使用したい機能の構文や、構文を記述する際の設定項目なども知ることが必要です。
992ページという大ボリュームに、Excel VBAを使ったあらゆる操作を凝縮しました。この1冊をお持ちいただければどんな場面でもすぐに役立つはず。クラスモジュールを利用したプログラムの作成方法や、Webスクレイピングを実行するVBAの記述方法など、高度な内容も解説しているため、一歩先を進んだ応用的な操作をしてみたい中級者の方にもおすすめの1冊です。