• ベストアンサー

エクセルでシートを消すマクロ

エクセルでシートを消去するマクロが作りたいです。 マクロの記録で作ったものを走らせた場合、「後戻りできません」のダイアログが表示されて動作がそこでストップしてしまいます。 ファイルを閉じるときにある SaveChanges:=False のような文を付け足したいのですが、どう書けばよろしいのでしょう。 すみませんが、どなたかご教授お願い致します。 m(_ _)m

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

Sub test_SheetDelete()  Application.DisplayAlerts = False  'これをつけます  On Error Resume Next '最後のシートを消そうとするとエラーになるのでつける  ActiveSheet.Delete  Application.DisplayAlerts = True  '念のために戻します End Sub ThisWorkbook.Close SaveChanges:=True '要保存のダイアログが出ません。Falseなら、ダイアログが出てきます。ただし、デフォルトは False です。 しかし、この場合は、Application.Quit(Excelの終了)は、使えません。 Close メソッドではなく、Save メソッドを使ってから、Application.Quit になります。 例: Sub test_Appquit()  If ThisWorkbook.Saved = False Then    ThisWorkbook.Save  End If  Application.Quit End Sub

noname#202422
質問者

お礼

今回は手動で行いました。 次回の課題としておきます。 素早いご指導ありがとうございました。 次は自動でファイルを開いて処理して保存して閉じる なんてのもできたらなぁと思います。

noname#202422
質問者

補足

大変重いデータをマクロで処理しファイル名をつけて保存しています。 この際マクロを引き継がないように空ブック(空シート)を作っておき、そこにそれぞれシート移動(コピーだと重すぎるので)、最後に空シートを削除して保存しようとしています。 この際 Application.DisplayAlerts = False Sheets("空").select ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True とするとダイアログは出なくなりました。 しかし、その後のファイル名を「空.xls」から 「指定したファイル名.xls」にするところが 「空.xls」で上書きされてしまいます。 これはどうしたものなんでしょうか... ちなみにファイル名をつける文は以前教えて頂いた、 Dim Fname As Variant Windows("空.xls").Activate Sheets("データ.xls").Select Fname = Range("a1").Text SendKeys "%FA" & Fname & "{enter}" としています。

その他の回答 (1)

  • surounin
  • ベストアンサー率28% (30/106)
回答No.1

消去・・・・削除と考えてお答えします。 動きをみせなくする Application.Screenupdating=false アラートを殺す(確認メッセージが出ない) Application.DisplayAlerts = False Sheets("******").Select シート削除 ActiveWindow.SelectedSheets.Delete 「シートクリアの場合は Cells.Select Selection.ClearContents」 アラートを戻す(確認メッセージが出る) Application.DisplayAlerts = True 動きを復活 Application.Screenupdating=True でどうでしょ^^;

noname#202422
質問者

お礼

今回は手動で行いました。 次回の課題としておきます。 素早いご指導ありがとうございました。

noname#202422
質問者

補足

早速のお返事ありがとうございました。 No2の方の補足のとおりの段階です。 もう一歩なんですが、あれをいじるとこれがおかしくなるの繰り返しですね。

関連するQ&A