
こんにちは。
VBAでシート上のデータを完全にクリアする方法について質問です。
VBAで様々な処理をした結果を「results」というシートに書き出しているとします。
上記の処理をする前に、一旦書き出し用シートをまっさらにするために、以下のコードを実行しています。
ThisWorkbook.Worksheets(resultSheetName).UsedRange.Clear
私の理解している範囲では、これで「results」シートのデータは、完全に消去されている筈なのですが、VBAの処理を実行するたびにブックのファイルサイズが増えていってしまうという不思議な現象に悩まされています。
例えば、処理の実行前は、ファイルサイズが約45KBだとします。
これが実行後は、1300KB程度まで増えます。
ここで、上記の「UsedRange.Clear」の処理を実行すると、250KB程度までファイルサイズが落ちますが、2回目の処理をするとサイズが1500KB程度になります。
以降、前回の結果を「クリア => 処理 => 書き出し」という処理を繰り返すたびに、ファイルサイズが200~300KBずつ増えていってしまうのです。
不思議なのは、上記の「UsedRange.Clear」のかわりに、通常のEXCEL操作で、ワークシート左上(「A」と「1」の間にある)の三角形をクリックして、すべてのセルを選択した上で、「クリア => すべてをクリア」を実行すると、ファイルサイズが45KBに戻るのです。
「UsedRange.Clear」と、手作業の「クリア => すべてをクリア」は、同じことではないのでしょうか?
以下のようなことも試みてみましたが、処理が遅い上に、ファイルサイズ的にはもっとひどいことになってしまいました。
ThisWorkbook.Worksheets(resultSheetName).Range("A1").Resize(65536, 256).Clear
このままでは、処理を実行するたびにファイルが重くなってしまって、ツールとしてつかいものになりません。
通常のEXCEL操作(手作業)で「すべてのセルを選択(左上三角クリック)」した上で「クリア => すべてをクリア」と同じ結果を得るには、どのようにしたらよりでしょうか。
No.1ベストアンサー
- 回答日時:
ThisWorkbook.Worksheets(resultSheetName).Cells.Clear
としてみてください。
>「UsedRange.Clear」と、手作業の「クリア => すべてをクリア」は、同じことではないのでしょうか?
違います。UsedRangeとは使用されているセルです。すべてのセルは、Cellsです。
ご回答ありがとうございます。
確かにCells.Clearで手作業と同じ結果が得られました。
UsedRrangeの外側にどんなデータがあったのかは謎のままですが、
とりあえずファイルサイズが増大していくことは防ぐことができそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA ユーザーフォーム 3 2022/04/14 10:30
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
人生で一番思い出に残ってる靴
皆さんの人生で一番思い入れのある靴の話を伺ってみたいです。
-
単二電池
あなたの家に何本ありますか?
-
カラオケの鉄板ソング
歌えばその場が絶対盛り上がる「鉄板ソング」を教えてください!
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
VBAで仕様書は書きますか?
Visual Basic(VBA)
-
-
4
レコードセットの中身を配列に、そしてワークシートに。
Visual Basic(VBA)
-
5
ExcelVBAで最終行を誤認する問題の回避方法
Visual Basic(VBA)
-
6
VBAを何回も作り直して、容量が増えた
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、日付を入力すると...
-
メルカリのメルカードで買い物...
-
「ご処理進めて頂きますようお...
-
セックスレスの既婚女性は自慰...
-
VBAでセルに値が入力されるまで...
-
VBA 特定の文字が入力されたセ...
-
if文に関してなのですが、 if( ...
-
インタラクティブの反対語は?
-
パソコンについて GPUをCPUの代...
-
vba 空のデータをSplitする時の...
-
Do~Loopした回数をカウントしたい
-
【Excel】特定の文字を含むセル...
-
VBAでループ内で使う変数名を可...
-
IQテストの数列
-
iD
-
ブックを順番に切り替える方法
-
お家デートをしててハグを長い...
-
【UserFormラベルに状況を随時...
-
switch の範囲指定
-
レジ返品交換について(時間がか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
VBの質問#if 0 then ってどう...
-
月度は何て読みますか?
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
インタラクティブの反対語は?
-
Loadイベント中にほかのイベン...
-
Do~Loopした回数をカウントしたい
-
findは動くがfindnextがマクロ...
-
VBAでセルに値が入力されるまで...
-
FFTの結果ついて
-
リョウ・・・量?料?
-
取り消し線が入った文字を削除...
おすすめ情報