シートの最終行・列の取得@Excel マクロ・VBA

Excelが認識しているシートの最終行、列の取得を行います。
Cells.SpecialCells(xlLastCell)にて、シートの最終行を取得します。

ただし、以下のパターンがあるので注意が必要です。
・test()
 ここでは、セルC3に値を挿入して、セルの最終行・列を表示しています。
セルC3が表示されます。
(ただし、シートにあらかじめ何も値が挿入されていない状態の場合です。)

・test2()
 ここでは、セルC10に値を挿入し、シートをクリアします。
その後に、C3に値を挿入して、セルの最終行・列を表示しています。
セルC10が表示されます。

・test3()
 ここでは、セルC10に値を挿入し、シートをクリアします。
ブックの保存処理を行います。
その後に、C3に値を挿入して、セルの最終行・列を表示しています。
セルC3が表示されます。



Sub test()

'セルC3に値を挿入
Cells(3, 3).Value = "C3"

'セルC3が表示される。
MsgBox ("行:" & Cells.SpecialCells(xlLastCell).Row _
& "列:" & Cells.SpecialCells(xlLastCell).Column)

End Sub

Sub test2()

'セルC10に値を挿入
Cells(10, 3).Value = "C10"

'セルをクリア
Cells.Clear

'セルC3に値を挿入
Cells(3, 3).Value = "C3"

'セルC10が表示される。
MsgBox ("行:" & Cells.SpecialCells(xlLastCell).Row _
& "列:" & Cells.SpecialCells(xlLastCell).Column)

End Sub

Sub test3()

'セルC10に値を挿入
Cells(10, 3).Value = "C10"

'セルをクリア
Cells.Clear

'ブックを保存
ThisWorkbook.Save

'セルC3に値を挿入
Cells(3, 3).Value = "C3"

'セルC3が表示される。
MsgBox ("行:" & Cells.SpecialCells(xlLastCell).Row _
& "列:" & Cells.SpecialCells(xlLastCell).Column)

End Sub




Copyright (C) Excelマクロ・VBAのお勉強. All Rights Reserved.