【関数・プロパティ設定をつかう】

5 文字列の指定位置から1文字を取得

6 文字列の文字数を取得

7 文字列のループで1文字ずつ分解

8 文字が入っているセルの最大行を取得

9 文字が入っているセルの最大列を取得

10 行のループで複数の文字列を連続分解

11 列のループで複数の文字列を連続分解

文字が入っているセルの最大行を取得

パイさん

「今回は、Excel VBA/マクロによってExcelシートの中で文字が入っているセルの最大行を取得してみます。


 A列の文字が入っているセルの最大行番号を取得するコードは次のようになります。」

Img7_3_21

パイさん

「予め、次のようなExcelシートを用意します。

 A列の文字が入っているセルの最大行番号を取得して、セルB1に格納してみましょう。」

Img7_3_22

ソンくん

「早速、A列の文字が入っているセルの最大行番号を取得するコードをつかってみます。」

Sub 最大行取得_End_Rowプロパティ()

 Range("B1").Value = Cells(Rows.Count, "A").End(xlUp).Row

End Sub

パイさん

「それでは、そのマクロを実行してみましょう。」


Img7_3_23

ソンくん

「セルB1に『12』と書きこまれました。」

パイさん

「これは、A列の文字が入っているセルの最大行は『12』行目ということです。」



 Excel VBA/マクロには文字が入っているセルの終端セルを一瞬で検索してくれる便利なプロパティがあります。

 それが、Endプロパティです。

 Endプロパティの構文は、次のようになります。」

Img7_3_24

パイさん

「次に、A列最終行のセル: Cells(1048576, "A")から上方向に文字が入っているセルを探索し

 最初にヒットしたセルの行番号を取得するコードは次のようになります。」

Img7_3_25

パイさん

「A列最終行のセル: Cells(1048576, "A")から上方向に文字が入っているセルを探索し

 最初にヒットしたセルの行番号を取得して、セルB1に格納してみます。」

Sub 最大行取得_End_Rowプロパティ()

 Range("B1").Value = Cells(1048576, "A").End(xlUp).Row

End Sub

ソンくん

「それでは、そのマクロを実行してみます。」


Img7_3_26

ソンくん

「セルB1に『12』と書きこまれました。」


パイさん

「そして、Excelの行の総数を取得するコードは次のようになります。」

Img7_3_27

パイさん

「Excelの最終行 = Excelの行の総数 なので、

 Cells(1048576, "A").End(xlUp).Rowの1048576にRows.Countを代入します。

 すると、A列の文字が入っているセルの最大行番号を取得する構文は次のようになります。」

Img7_3_28

演習:ExcelのB列の文字が入っているセルの最大行番号を取得して、

セルC1に格納

Sub 最大行取得_End_Rowプロパティ()

 Range("C1").Value = Cells(Rows.Count, "B").End(xlUp).Row

End Sub

 

パイさん

「このように、Rows.CountプロパティとEnd(xlUp)プロパティとRowプロパティを

 組み合わせることで、対象列の文字が入っているセルの最大行を取得することができます。」



 Excelのセルの最大行については、

 ブログ『Excelショートカットキーで最大行・最大列を選択

 をご参照ください。」