- ベストアンサー
エクセルでシートを消すマクロ
エクセルでシートを消去するマクロが作りたいです。 マクロの記録で作ったものを走らせた場合、「後戻りできません」のダイアログが表示されて動作がそこでストップしてしまいます。 ファイルを閉じるときにある SaveChanges:=False のような文を付け足したいのですが、どう書けばよろしいのでしょう。 すみませんが、どなたかご教授お願い致します。 m(_ _)m
- みんなの回答 (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
その他の回答 (1)
- surounin
- ベストアンサー率28% (30/106)
消去・・・・削除と考えてお答えします。 動きをみせなくする Application.Screenupdating=false アラートを殺す(確認メッセージが出ない) Application.DisplayAlerts = False Sheets("******").Select シート削除 ActiveWindow.SelectedSheets.Delete 「シートクリアの場合は Cells.Select Selection.ClearContents」 アラートを戻す(確認メッセージが出る) Application.DisplayAlerts = True 動きを復活 Application.Screenupdating=True でどうでしょ^^;
お礼
今回は手動で行いました。 次回の課題としておきます。 素早いご指導ありがとうございました。
補足
早速のお返事ありがとうございました。 No2の方の補足のとおりの段階です。 もう一歩なんですが、あれをいじるとこれがおかしくなるの繰り返しですね。
お礼
今回は手動で行いました。 次回の課題としておきます。 素早いご指導ありがとうございました。 次は自動でファイルを開いて処理して保存して閉じる なんてのもできたらなぁと思います。
補足
大変重いデータをマクロで処理しファイル名をつけて保存しています。 この際マクロを引き継がないように空ブック(空シート)を作っておき、そこにそれぞれシート移動(コピーだと重すぎるので)、最後に空シートを削除して保存しようとしています。 この際 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}" としています。