最終行と最終列の取得


エクセルVBAを使っていて
一番良く使うのが,最終行と最終列の取得。
下記の表ではD列が最終行を取得する列、2行目が最終列を取得する行となります。
 Cells(“行番号”, “列番号”) がCellsの指定 Range(“A1:B1”)とはちょっと異なります。
 Cells(Rows.Count, 4) の4がD列を指定 ‘Rows.Count は最終行
 Cells(2, Columns.Count) の2が行を指定 ‘Columns.Count は最終列

下記のショートカット一覧表でそれを取得するマクロは・・

キーボードの Alt +F11 ボタンを押して

すると・・VBAの画面が開きます
左のプロジェクトの部分では
Sheet1(Sheet1)となっていますので
ここにSubプロシージャを記載します。

※ Sub と Function の違い(Functionプロシージャは戻り値があり、Subプロシージャは実行のみ)

 

以下のマクロを記載する


‘最終行と最終列を取得する
Sub LastGet()

Dim LastRow As Long ‘最終行を取得する
Dim LastColumn As Long ‘最終列を取得する

LastRow = Cells(Rows.Count, 4).End(xlUp).Row
LastColumn = Cells(2, Columns.Count).End(xlToLeft).Column

‘Endプロパティの方向(↑↓←→)について
‘Endプロパティの構文は、
‘End(Direction)

‘Directionに指定するものは、
‘xlUp: ↑上へ
‘xlDown: ↓下へ
‘xlToLeft: ←左へ
‘xlToRight: →右へ

Debug.Print “最終行”; LastRow; “最終列”; LastColumn ‘ イミディエイトウィンドウに出力する

End Sub
 


※ Cellsは 記載をしたSheet1の場合で、他のワークシートの場合は
Sheets(“Sheet1”). Cells(Rows.Count, 4) という様な形でオブジェクトを明記して記載をする
 


 

書いたマクロを実行するには・・・▷ボタンを押すと実行されます。ショートカットは「F6」キー

 

この表の場合の最終行と最終列はイミディエイトウィンドウに出力されます。

最終行は 606 最終列 5 です
 

となります。

 

何を書いているかわからない!! そんなの俺には関係ない!!

つまらないルーチンワークから脱却して創造的に改善するためのステップです。
最初はそれが当たり前!! 少しずつ染み込みます。

 

,

2021年1月
 123
45678910
11121314151617
18192021222324
25262728293031
最近の記事
カテゴリ
月別アーカイブ