• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA: UsedRange.Clearでクリア?)

VBAのUsedRange.Clearでデータを完全にクリアする方法について

このQ&Aのポイント
  • VBAのUsedRange.Clearでシート上のデータをクリアする方法について質問します。
  • VBAのUsedRange.Clearを実行してもファイルサイズが増えてしまう現象に悩んでいます。
  • 通常のExcel操作とVBAのUsedRange.Clearの違いについて知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

ThisWorkbook.Worksheets(resultSheetName).Cells.Clear としてみてください。 >「UsedRange.Clear」と、手作業の「クリア => すべてをクリア」は、同じことではないのでしょうか? 違います。UsedRangeとは使用されているセルです。すべてのセルは、Cellsです。

Kazu_creator
質問者

お礼

ご回答ありがとうございます。 確かにCells.Clearで手作業と同じ結果が得られました。 UsedRrangeの外側にどんなデータがあったのかは謎のままですが、 とりあえずファイルサイズが増大していくことは防ぐことができそうです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel  vba  シートの取り扱い

    Sub   aaa() Worksheets.Add ActiveSheet.Name = "Namefile" ((質問)ここへ適当なコードを追加することによって 以下のThisWorkbook.Sheets(1)というのを、上で追加した Namefileシートを処理することとしたい。 つまり  Namefileシート=ThisWorkbook.Sheets(1) どうすればいいか。よろしくお願いします。) ThisWorkbook.Sheets(1).UsedRange ThisWorkbook.Sheets(1).UsedRange.Delete ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "最終更新日" End Sub

  • VBAでシート全体の塗りつぶしを解除する

    シート内にある塗りつぶしをしたセルを 一度に全てクリアしたいのですが、どうすればよいでしょうか。。。 不規則で、しかも数が多いので、それぞれのセルを選択してクリアする、ということが難しいです。 Worksheets("Sheet1").Range("A1").Interior.ColorIndex = xlNone × Worksheets("Sheet1") には Interiorプロパティ(?)が存在しないのでしょうか。 手作業でする場合、シートの左上をクリックして全選択し、[塗りつぶしの色]-[塗りぶつしなし]とできるので、VBAでもできるんではないかと思っているのですが 不可能なのでしょうか。 素人の質問ですみません。。。

  • Excel VBA 指定シートの取込

    こんにちは。 ExcelのVBAを使用して、異なるBookのシートを取込みたいのですが、 シートが無かった場合の処理方法がわかりません。 現在のコードは下記の様になっております。 With Workbooks.Open"BOOK1.xls" .Worksheets("Sh1").Cells.Copy ThisWorkbook.Sheets("Sheet1").Range("A1") .Worksheets("Sh2").Cells.Copy ThisWorkbook.Sheets("Sheet2").Range("A1") .Worksheets("Sh3").Cells.Copy ThisWorkbook.Sheets("Sheet3").Range("A1") .Close End With Book1に指定したシートが無い場合、何もしないようにしたいのですが、 どの様に書き換えれば宜しいでしょうか? よろしくお願いします。

  • エクセルVBAでクリアボタンを作ったのですが・・・

    エクセルVBAでクリアボタンを作ったのですが、ひとつのシートは表紙でクリアさせず、その他すべてのシートは同じセル範囲をクリアするというボタンを作成したいのですが 「表紙というシートを除いたほかのシート」と宣言したいのですが表現がわかりません。ご回答よろしくお願い致します。

  • VBAで困っています。

    VBAで比較ツールを作っています。2つのワークシートを比較し、同じセルの位置にある値を比較し、値が異なっていれば色を変えるというものです。行をキー(1行、2行、3行・・・)として2つのワークシートですべてのキー行のセルの値が一致する列同士を比較する方法があるのですが、キーを1個でも100個でも指定した場合のプログラム構造を知りたいのです。 お力をお貸しください。 Sub DF() Dim Before As Range Dim After As Range Before = Worksheets("Sheet1").UsedRange.Value After = Worksheets("Sheet2").UsedRange.Value キーとなる行数をカウント   カウントした行を最大値を変数に設定   ・・・・   ・・・・   ・・・・ End Sub

  • 0から始まるのですか?1から始まるのですか?

    VBAのインデックスは0から始まるのですか?1から始まるのですか? 配列などのインデックスは0からはじまるのに ThisWorkbook.Worksheets(0).Activate '一番左のシートを選択する このコードを実行するとエラーになります。 ThisWorkbook.Worksheets(1).Activate にすると大丈夫です。 VBAなら始まりの数字は1と言うわけではないのでしょうか? どういう場合が0から始まってどういう場合が1から始まるのでしょうか? 配列なら0から始まるのですか?

  • クリップボードをクリアするVBAコマンド

    今、複数のCSVファイルを一枚のエクセルシートにまとめる マクロ(少しVBAを交えながら)作っています。 CSVファイルを開いて、データすべてをクリップボードにコピーしていく、、という作業の繰り返しマクロです。 1ファイルをシートに移した後、いったんクリップボードをクリアして、次のファイルを読み込みたいのですが、 クリアするコマンドがわかりません。 ご指導ください。

  • VBA フォルダ内のファイルを昇順に読み出す方法

    以下のような簡単なプログラムを組みました。 ファイル名を昇順に読み出せると思っていましたが、そうならない場合があるようです。 なぜなのでしょうか? また、どうすればファイルを昇順に読み出せるのでしょうか? どなたか教えて頂けないでしょうか? (抜粋) Set WS1 = Worksheets("データー(org)") '書き出すシート Set WS3 = Worksheets("集計") Dim a As String With Application.FileDialog(msoFileDialogFolderPicker) .Show PathName = .SelectedItems(1) & "\" 'ファイルの入っているフォルダを指定 End With BookName = Dir(PathName) '処理するファイル Do Until BookName = "" Workbooks.Open PathName & BookName 'ファイルを開く Set WS2 = Worksheets(1) '読み込むシート WS2.Rows("1:" & WS2.UsedRange.Rows.Count).Copy If WS1.UsedRange.Rows.Count = 1 Then WS1.Rows(WS1.UsedRange.Rows.Count).PasteSpecial Paste:=xlValues Else WS1.Rows(WS1.UsedRange.Rows.Count + 1).PasteSpecial Paste:=xlValues End If Workbooks(BookName).Close 'ファイルを閉じる BookName = Dir() 'ファイル名をクリア Loop

  • Excel VBAで検索する

    Excel VBAで、Sheet1に貼り付けたテキスト内から Sheet2に記載した(1列ごとの)キーワードを検索し キーワードが含まれている行をSheet3に貼り付ける処理をしているのですが、始めたばかりなので上手くいきません。 下記がソースです。 Dim moji As String Dim word As String Dim result As Integer For i = 3 To 103 For j = 2 To 21 moji = ThisWorkbook.Worksheets("Sheet1").Cells (i, 1).Value word = ThisWorkbook.Worksheets("Sheet2").Cells (j, 2).Value result = InStr(moji, word) If doResult <> 0 Then For k = 1 To 100 ThisWorkbook.Worksheets("Sheet3").Cells (k, 1).Value= moji Next k End If Next j Next i このソースでは上手くいかないのですが、どこがダメなのか分からないので、解決の糸口がつかめません。 アドバイスなどお願いします。

  • VBA なんですが

    VBA なんですが すべてのワークシートを順番に選択して 指定した範囲をコピーし『まとめ』と言う別のシートに貼り付けたいのですが どうしたらいいのかわかりません。 それらしいのは考えたのですが Set sh = Worksheets(sh.Name)でエラーになります。 頭がいいかた教えてください。   Dim sh3 As Worksheet Dim sh As Worksheet Dim en As Long Set sh3 = Worksheets("まとめ") For Each sh In ActiveWorkbook.Worksheets If sh.Name <> "まとめ" Then en = sh.UsedRange.Rows.Count Set sh = Worksheets(sh.Name) sh.Range(Cells(2, 1), Cells(en, 10)).Copy

このQ&Aのポイント
  • 飼い猫の体重が増えた場合、適切なフード量の管理が重要です。
  • 猫の体重増加の原因として、塩気を抜いた食べ物やPrimodial Pouchの影響が考えられます。
  • 室内飼いの猫におすすめの遊び方として、運動量を増やす方法があります。
回答を見る

専門家に質問してみよう