『Excel』 VBAでちょっと便利!?(その12)
Excelでのプログラミング12回目です。
セルの「プロパティ」についての2回目です。
■セル(Rangeオブジェクト)のプロパティ一覧(よく使われるものを抜粋)
◇ Column Row ◇
- セルの列番号、セルの行番号を取得します。
表の開始セルが分かっている時、表の最終行、最終列を取得してみます。
上の例では、表の開始セルは(2行目、2列目)になります。
最終行は
Cells(2,2).End(xlDown).Row —①
最終列は
Cells(2,2).End(xlToRight).Column —②
で取得できます。
①は、セル(2行2列目)から下方向へ最終行のセルを探し、その行番号を取得する。
②は、セル(2行2列目)から右方向へ最終列のセルを探し、その列番号を取得する。
ということになります。
この時一つ注意しなければならないことがあります。
表の途中に空白のセルがある場合は、そのひとつ前のセルの行や列を取得してしまうということです。
それを避ける方法があります。
Cells(Rows.Count, 2).End(xlUp).Row —①‘
Cells(2, Columns.Count).End(xlToLeft).Column —②‘
①‘は、Rows.Count(ワークシートの最下行の行番号)・2列目のセルから上方向にデータの入ったセルを探し、その行番号を取得します。
②‘は、2行目・Columns.Count(ワークシートの最終列の列番号)のセルから左方向へデータの入ったセルを探し、その列番号を取得します。
~~~~~~~~~~~~~~~~~~~~
※Rows.Count、Columns.Countは
エクセルのバージョンによって変わります。
◆2007以降 1048576行 16,384列
◆2003以前 65536行 256列
~~~~~~~~~~~~~~~~~~~~
【注意】行番号を変数に代入する場合は、変数の型をLong型にしてください。
<例>
Dim gyoubangou as Long
gyoubangou = Cells(2,2).End(xlDown).Row
※32,767行を超える場合があるため、Long型にすることでエラーを防ぐことができます。
次回は、セルのプロパティ3回目です。