カウンタ変数を逆に回すケース
「理解できたっス…。
でもStepに負の値を指定して、カウンタ変数を逆に回すケースなんてあるんですかね?」
森川くんが訝しげな表情で、岬さんに質問します。
岬さんはニタ~と笑いながら、森川くんに顔を近づけました。
「あるわよ……特にExcelはね。
森川くん、マクロで表から条件を満たすデータ行を削除したいとき、キミならどうする?」
森川くんは、小首をかしげながら考えます。
「そうっスね…。
ループで回して、判定条件のセルを上から確認し、条件を満たしたとき、
"Rows(i).Delete"で削除するっス」
「削除したら、次の行の行番号はどうなると思う?」
「どうなるって…………あっ!!」
森川くんがハッとした顔で、岬さんを見つめます。
「気がついたわね。
行を削除したら、削除行以降の行番号が1ずつズレちゃうの。
つまりループで行を削除するとき、上から下に削除してはダメなのよ。
"Step -1"にして、下から上へ削除する、これが正しい行削除のやり方よ。
これは"鉄則"だから必ず覚えておいてね」
「(これがExcel VBAの世界か……おもしろいじゃん!!)」
岬さんのレクチャーを聞きながら、森川くんは胸の鼓動が高まってくるのを感じました。