トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 森川くんのVBA日記編: 第13話「これからの勉強方針」4/4 :カウンタ変数を逆に回すケース

やってみよう!Excel VBAで業務改善! 森川くんのVBA日記編|第13話 「これからの勉強方針」

カウンタ変数を逆に回すケース

「理解できたっス…。
でもStepに負の値を指定して、カウンタ変数を逆に回すケースなんてあるんですかね?」

森川くんが訝しげな表情で、岬さんに質問します。
岬さんはニタ~と笑いながら、森川くんに顔を近づけました。

「あるわよ……特にExcelはね。
森川くん、マクロで表から条件を満たすデータ行を削除したいとき、キミならどうする?」

森川くんは、小首をかしげながら考えます。

「そうっスね…。
ループで回して、判定条件のセルを上から確認し、条件を満たしたとき、
"Rows(i).Delete"で削除するっス」

「削除したら、次の行の行番号はどうなると思う?」

「どうなるって…………あっ!!」

森川くんがハッとした顔で、岬さんを見つめます。

「気がついたわね。
行を削除したら、削除行以降の行番号が1ずつズレちゃうの。
つまりループで行を削除するとき、上から下に削除してはダメなのよ。
"Step -1"にして、下から上へ削除する、これが正しい行削除のやり方よ。
これは"鉄則"だから必ず覚えておいてね」

「(これがExcel VBAの世界か……おもしろいじゃん!!)」

岬さんのレクチャーを聞きながら、森川くんは胸の鼓動が高まってくるのを感じました。

第14話「ステートメントはマクロの要」に続きます
文・イラスト / 武藤 玄
ご意見やご感想の投稿はこちら

星くんと一緒にSTEP UPしませんか?
一覧にもどる