データのある最後の行までループさせる方法 − GoGoマクロ!のWebサイト

HOME > 基本構文 > データのある最後の行までループさせる方法

データのある最後の行までループさせる方法


  n = Cells(Rows.Count, "A").End(xlUp).Row


これは、「A列の最後の行位置がどこかを示してくれる」という構文です。

ちょっと見た目はむずかしい1行なので、覚える必要はまったくありませんが 何行目まであるかが分らないシートのデータを扱う場合や、毎回データの行数 が変わるシートを扱う場合などには、この1行をコピーして使えばよい訳です。

これを使う場合に気を付けなければならないのは、最初の( )の中の"A"の部分 だけで、例えば、C列なら"C"に、F列ならば"F"に変更するということだけです。

例えば、

  n = Cells(Rows.Count, "F").End(xlUp).Row

これで、F列の最後の行位置が変数 n に格納されるということになりますので その次のFor文で、n までループさせる様にすればよい( For i = 1 to n ) という具合です。

この1行の構文さえあれば、データが何行まであっても、何行まであるか分から なくても、毎回行数が変わる場合でも、プログラムは変更しなくて大丈夫!


ちなみに、

  m = Cells(1, Columns.Count).End(xlToLeft).Column

この1行の構文で、横方向の(列の)最後も得られますので、例えば、

  m = Cells(5, Columns.Count).End(xlToLeft).Column

これで、5行目のデータが何番目の列まで在るかが変数 m に格納できます。 (なお、この場合得られる列は数字なので、例えば m=3 なら左から3番目の列、 すなわちC列のことになります。)


NEXT >>
For文とDo文の使い分けについて