【関数・プロパティ設定をつかう】
6 文字列の文字数を取得
7 文字列のループで1文字ずつ分解
8 文字が入っているセルの最大行を取得
9 文字が入っているセルの最大列を取得
10 行のループで複数の文字列を連続分解
11 列のループで複数の文字列を連続分解
12 指定した行番号と列番号のセル番地を取得
「今回は、Excel VBA/マクロによってExcelシートの中で文字が入っているセルの最大列を取得してみましょう。
Endプロパティの構文は、次のようになります。
前回は、最後の行を調べるためにEnd(xlUp)プロパティをつかいましたが、
今回は、End(xlToLeft)プロパティをつかって最後の列を調べてみます。
End(xlToLeft)プロパティをつかって1行目の終端のセルを選択してみましょう。
Range("IV1").End(xlToLeft).Selectと記述します。」
Sub 最大列選択_Endプロパティ_Selectメソッド()
Range("IV1").End(xlToLeft).Select
End Sub
「始点のセルが『IV1』となっています。1行目はわかるのですが、IV列となっているのはなぜですか?」
「この列名は、Excel2003までの最大列名であるIV列をつかっているだけです。IV列は256列ということです。
通常は、256列を超えるデータ列をマクロで扱うことはないので、IV列を最大列と指定しても問題はありません。
それでは、このマクロを実行してみましょう。」
「セルK1が選択されました。」
「これは、セルIV1から左方向に文字が入っているセルの終端セルを探し当てたことによるものです。
セルIV1から左方向に文字が入っているセルを検索したとき、K1が最初にヒットしたため、
セルK1が選択されています。」
「それでは、End(xlToLeft)プロパティとColumnプロパティを組み合わせて、
1行目の文字が入っているセルの最大列を取得してみましょう。」
「Columnプロパティとは、対象セルの列番号を取得するプロパティです。
Range(セル番地). End(xlToLeft)プロパティとColumnプロパティを組み合わせることで、
対象行の文字が入っているセルの最大列を取得することができます。
Excelの1行目の右端セルの列番号を取得して、セルA2に格納してみましょう。」
「早速、End(xlToLeft)プロパティとColumnプロパティを組み合わせてつかってみます。
1行目の終端セルの列番号を取得して、セルA2に格納するのだから、
Range("A2").Value = Range("IV1").End(xlToLeft).Column
これで良いのでしょうか。」
Sub 最大列取得_End_Columnプロパティ()
Range("A2").Value = Range("IV1").End(xlToLeft).Column
End Sub
「それでは、そのマクロを実行してみましょう。」
「Excelの1行目の文字が入っているセルの最大列番号が取得され、セルA2に『11』と書きこまれました。」
「これはExcelの1行目の文字が入っているセルの最大列は、『11』列目ということです。」
演習:Excelの2行目の右端セルの列番号を取得して、セルA3に格納
Sub 最大列取得_End_Columnプロパティ()
Range("A3").Value = Range("IV2"). End(xlToLeft).Column
End Sub
「このように、Range(セル番地). End(xlToLeft)プロパティとColumnプロパティを組み合わせることで、
対象行の文字が入っているセルの最大列を取得することができます。」
◇もしもPython-xlwingsだったら、
2023-03-19
2021-12-20
2021-12-12