Sponsored Link
[Excel, VBA]セルの行と列を取得する
記載されている最終行を取得
Cells(Rows.Count, x).End(xlUp).Row
- Rows.Count
最終行を取得します
※補足※
Excel2003までは、65,536行
2007/2010/2013では、1,048,576行- Cells(Rows.Count, x)
x列目の最終行を取得。
※6列目を指定したければ、Cells(Rows.Count,6)となります
- Cells(Rows.Count, x)
- End(xlUp).Row
最終行から上がっていき、一番最初に記載されているセルの行を返します
※補足※
End(xlDown).Row
先頭行から下がって行き、一番最初に空白セルがある行を返したい場合は、
Cells(1, 1).End(xlDown).Row
もしくは
Range("A1").End(xlDown).Row
と記載します。
Rows.Countは最終行を取得するため、使用してはいけません。
また、厳密に言えばセルの変わり目で止まりますので、
例えばA1セルが空白であった場合は、空白を基準として変わり目のセル(何かしらの記載がある)行を返します。
記載されている最終列を取得
Cells(y, Columns.Count).End(xlToLeft).Column
-
Columns.Count
最終列を取得します
※補足※
Excel2003までは、256列
2007/2010/2013では、16,384列- Cells(y, Columns.Count)
y行目の最終列を取得。
※6行目を指定したければ、Cells(6, Columns.Count)となります
- Cells(y, Columns.Count)
- End(xlToLeft).Column
最終列から左に向かっていき、一番最初に記載されているセルの行を返します
※補足※
End(xlToRight).Column
先頭列から右に向かっていく場合はこの書き方になります
※行の取得と同じ挙動になります
■おまけ■
End内の定数は下記の数値でも表すことが出来ます
定数 | 値 |
---|---|
xlUp | -4162 |
xlDown | -4121 |
xlToLeft | -4159 |
xlToRight | -4161 |