エクセルのVBAで最終行を取得し表の先頭から処理を繰返す
ここではVBAで最終行の行番号を取得し、表の先頭から処理を繰り返すためのコードを紹介します。
ポイントは「繰り返しのコードの書き方」、「最終行の行番号の取得の仕方」、「表の先頭の指定の仕方」です。
それぞれ詳しく解説しますので、すぐに使えると思います。
1.繰り返しのコードの書き方
まずは繰り返しのコードの書き方からです。
Sub 最終行まで繰り返し() '①
Dim i As Integer '②
For i = 1 To 10 '③
(ここに繰り返したい処理コード)
Next '④
End Sub '⑤
①はコード全体のタイトルです。「Sub」と「()」の間に任意のものを入力します。
②は変数の指定です。「Integer」は、この変数が数値ですよという意味です。また、「i」はiでなく変更しても構いませんが、その場合には他の「i」となっているところも同じように変える必要があります。
③は繰り返しのコードの始めです。「For 変数 〇 To ◇」という形で、〇には始まりの数値を、◇には終わりの数値を入力します。まずは適当に「1から10」としました。
④は繰り返しのコードの終わりです。必ずこの形で必要です。ちなみに③と④の間に繰り返したい処理のコードが入ります。
⑤はコード全体の終わりです。これも必ず必要ですが、Sub()を入力すると、自動で入ります。
繰り返しのコードは、このような形になります。
2.最終行の行番号の取得の仕方
次に、最終行の行番号の取得の仕方です。
Dim z As Integer
z = Workbooks("ブック名").Worksheets("シート名").Cells(Rows.Count, "A").End(xlUp).Row'⑥
最終行の行番号を取得するコードは上のようになります。意味は「指定した列の最後の行(1048576行目)を起点に、値が入力された一番近いセルを上方向へ探す」です。
まず「Workbooks("ブック名").Worksheets("シート名").」は、書かなくても動きますが、思いがけないブックやセルを参照することを防ぐためにあった方がいいでしょう。
次に「"A"」のところで列番号を指定します。ちなみに「"A"」だとA列の最終行を取得することになります。
3.表の先頭の指定の仕方
続いて表の先頭の指定の仕方です。
例えば上の表があるとき、実際に処理をしたいのは2行目からになると思います。
その場合には先ほどの「繰り返しのコード」の中にあった③の「For i = ①To10」のうち、「1」を「2」に変えます。
Sub 最終行まで繰り返し()
Dim i As Integer
For i = 2 To 10 '1を2に変更した
(ここに繰り返したい処理コード)
Next
End Sub
つまり始まりの指定は、「Toの前の数値」で行っているのです。
4.先頭から最終行まで処理を繰り返すコードは
これまでを踏まえて、先頭から最終行まで処理を繰り返すコードを紹介します。
上の表のA列に対して、何らかの処理を行いたいとします。
Sub 最終行まで繰り返し()
Dim i As Integer
Dim z As Integer
z = Workbooks("ブック名").Worksheets("シート名").Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To z
(ここに繰り返したい処理コード)
Next
End Sub
このコードをコピーして貼り付け、後は繰り返したいコードを間に入力すればOKです。
なお、繰り返したい処理の行番号の指定には変数iを使ってください。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】