不要な行の削除②

Pocket

今まで繰り返し処理は、Do Until ~Loopを使っていましたが、
行を削除する場合は、このやり方だとうまくいきません。

簡単に言うと、
一行削除した場合、下の行が繰り上がり、行番号はそのままです。
例えば、10行目を削除すると、削除する前は11行目のデータが10
行目に繰り上がります。

しかし変数のaは10から11に変化します。
削除する前は11行目だったデータは、削除後10行目になりますが
aは11に変化するので、削除された次の行が必ずスキップされてしまいます。

ですので、行を削除する場合は下から削除します。
つまり変数を11→10→9というように変化させます。

このとき使うのが、
For ~ Next関数です。

Do Until ~ Loop関数は上から下にしか動かせませんが、
For ~ Next関数は上から下にも、下から上にも動かせます。

For ~ Next関数の書き方は次の通りです。

For b= 1 to 10
処理
Next b

今回は変数をbとしましたが、bが1、2,3,4,5,6・・・10へと変化します。

ここで、
For b= 10 to 1 Step -1 
とすることで、bが10,9,8,7,6、・・・1へと変化させることができます。

For Next関数に、前回登録した行を削除するマクロを組み合わせていきます。