【関数・プロパティ設定をつかう】
6 文字列の文字数を取得
7 文字列のループで1文字ずつ分解
8 文字が入っているセルの最大行を取得
9 文字が入っているセルの最大列を取得
10 行のループで複数の文字列を連続分解
11 列のループで複数の文字列を連続分解
12 指定した行番号と列番号のセル番地を取得
文字が入っているセルの最大列を取得
パイさん
「今回は、Excel VBA/マクロによってExcelシートの中で文字が入っているセルの最大列を取得してみます。
A列の文字が入っているセルの最大列番号を取得するコードは次のようになります。」
パイさん
「予め、次のようなExcelシートを用意します。
1行目の文字が入っているセルの最大列番号を取得して、セルA2に格納してみましょう。」
ソンくん
「早速、1行目の文字が入っているセルの最大列番号を取得するコードをつかってみます。」
Sub 最大列取得_End_Columnプロパティ()
Range("A2").Value = Cells(1, Columns.Count).End(xlToLeft).Column
End Sub
パイさん
「それでは、そのマクロを実行してみましょう。」
ソンくん
「セルA2に『11』と書きこまれました。」
パイさん
「これは、1行目の文字が入っているセルの最大列は『11』列目ということです。」
Excel VBA/マクロには文字が入っているセルの終端セルを一瞬で検索してくれる便利なプロパティがあります。
それが、Endプロパティです。
Endプロパティの構文は、次のようになります。」
パイさん
「次に、1行目最終列のセル: Cells(1, 16384)から左方向に文字が入っているセルを探索し
最初にヒットしたセルの列番号を取得するコードは次のようになります。」
パイさん
「1行目最終列のセル: Cells(1, 16384)から左方向に文字が入っているセルを探索し
最初にヒットしたセルの列番号を取得して、セルB1に格納してみます。」
Sub 最大列取得_End_Columnプロパティ()
Range("A2").Value = Cells(1, 16384).End(xlToLeft).Column
End Sub
ソンくん
「それでは、そのマクロを実行してみます。」
ソンくん
「セルA2に『11』と書きこまれました。」
パイさん
「そして、Excelの列の総数を取得するコードは次のようになります。」
パイさん
「Excelの最終列 = Excelの列の総数 なので、
Cells(1, 16384).End(xlToLeft).Rowの16384にColumns.Countを代入します。
すると、1行目の文字が入っているセルの最大列番号を取得する構文は次のようになります。」
-
演習: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ショートカットキーで最大行・最大列を選択』
をご参照ください。」