2024年02月13日

ExcelのVBAを使った行削除がこんなに遅いなんて〜解決策はUnionを使うことじゃなくて、もっと単純なことだった

遅い。遅いよー。

今まで、万を超えた行を一度に削除することなんかなかったし、
かかっても、許される範囲だろ・・と思っていた時期もありました。

しかし、めっちゃ遅い。

何か、つくっているときの待ち時間は「許される」けど
ただ、削除するときは「苦痛でしかない」

実感しました。


でも、これは、ちょっとまずいレベル。

普通の方法以外に、早いと言われている
Unionも使ってみましたよ。
いや、でも、だめだなこりゃ。

ここで、紹介されている、図形を一括削除するコードだとむちゃくちゃ早いのに。
https://www.relief.jp/docs/excel-macro-delete-all-shapes.html

こんなの
ActiveSheet.Shapes.SelectAll
Selection.Delete

「なんだよ〜。どうしてだよ〜。」

と、いいながら、ふて寝してました。




そして、

「あっ」

「シートまるごと削除すれば、良くね?」

その上で、元ネタからコピーするなり、変数を展開するなり
どうにでもなるじゃない。

「簡単なことだよ。ワトソンくん」

思い出しましたよ。この台詞を。

つまり、これだけでおけ。
ActiveSheet.Delete


「なんで、気づかないんだよ。」
 「ま、解決したし、よかったよかった。」



しかし、
 このあと、
  彼を

万を超える行をPDF化するという
 神をも恐れぬ所業に

Excelのダンマリという鉄槌が下されることを
彼は、まだ知らなかったのだった。





posted by ろびんいちごー at 23:56| Comment(0) | TrackBack(0) | 開発(Eclipse/swt/java/javascript/php/HTML) | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック


Powered by Seesaa
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。