ええっ?行が削除されてないよぅ(。´・ω・)?

今は便利な世の中で

VBAのコードについてネットで調べるといろんなサイトが

教えてくれますよね~


しかもどこも同じようなコードが並んでるのは

気のせいだろうかってw



例えば「行を削除する」


Rows(i).Delete

とか、

Cells(i, 1).EntireRow.Delete

・・・が、よくでてきます。






ある日のこと・・・

こういうパーツだけ見てた、

とある素人が、

いざ実務のマクロを作ろうとした時の話です。





Excelに2~17行目に種類と型番が入っていたとします。

この種類の「A」は対象外なので、

種類「A」を削除する、こんなプロシージャを書いたとします。


こちらが、そのプロシージャ

※実務っぽくするため、わざわざワークシートオブジェクトを使いました。




このプロシージャ、


・・・なぜなら

データ数が少ないから





本来の実務では何百行のデータを扱ってまして、

その環境でこのプロシージャを実行すると、

削除されるべきデータが削除されず

不要なデータが残ってしまいます。







おっかしーなーと頭を掻きながら、再びネットで検索してたら

プロシージャ全体を紹介しているサイトを発見したので

何が違うのか&足りないのかを見比べてみました。





こちらが、正解プロシージャ


で、こちらは、誤プロシージャ





あ!






そうなんですよ・・・

ポイントは赤色で囲った部分。

2~17行全部見ていくけど、







「行を消す」っていうコードだけ見てただけでは、

行は消さないんですね…トホホ






※ほかにもいろいろプロシージャの書き方はあります。

御礼:

ここまで読んでくださりありがとうございます!!

誤字・脱字・その他諸々のミスに対する細かいクレームは割愛ください(>_<)

どんどんTopicsを増やしていきたいと思いますので

今後ともよろしくお願いします!