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

6 文字列の文字数を取得

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

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

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

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

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

12 指定した行番号と列番号のセル番地を取得

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

パイさん

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


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

Img7_3_31

パイさん

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

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

Img7_3_32

ソンくん

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

Sub 最大列取得_End_Columnプロパティ()

 Range("A2").Value = Cells(1, Columns.Count).End(xlToLeft).Column

End Sub

パイさん

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


Img7_3_33

ソンくん

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

パイさん

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



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

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

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

Img7_3_34

パイさん

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

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

Img7_3_35

パイさん

「1行目最終列のセル: Cells(1, 16384)から左方向に文字が入っているセルを探索し

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

Sub 最大列取得_End_Columnプロパティ()

 Range("A2").Value = Cells(1, 16384).End(xlToLeft).Column

End Sub

ソンくん

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


Img7_3_36

ソンくん

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


パイさん

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

Img7_3_37

パイさん

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

 Cells(1, 16384).End(xlToLeft).Rowの16384にColumns.Countを代入します。

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

Img7_3_38

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

セルA3に格納

Sub 最大列取得_End_Columnプロパティ()

 Range("A3").Value = Cells(2, Columns.Count).End(xlToLeft).Column

End Sub

 

パイさん

「このように、 Columns.CountプロパティとEnd(xlToLeft)プロパティとColumnプロパティを

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



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

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

 をご参照ください。」