プロが教える店舗&オフィスのセキュリティ対策術

マクロを実行した時に保存のダイナログが「非表示」の状態でダイレクトに保存できる方法を教えてください。
マクロ
Sub 行政報告2()
Application.ScreenUpdating = False
Dim folder As String
folder = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("300").Range("A41").Text & " 【担当】確認番号 建物名称\" & Worksheets("300").Range("A43").Text & "\"
Dim initName As String
initName = folder & Worksheets("1").Range("X1").Value
newName = Application.GetSaveAsFilename(InitialFileName:=initName, FileFilter:="Excel マクロ有効ブック(*.xlsm), *.xlsm")
If newName = False Then Exit Sub
ThisWorkbook.SaveCopyAs newName
Workbooks.Open newName
Dim ws As Worksheet
Dim TargetCheck As String
Dim List As Variant
Dim i As Long
Dim Chk As Boolean
List = Array("休日", "受付", "管理表")
For Each ws In Worksheets
Chk = False
If ws.Visible = False Then
For i = 0 To UBound(List)
If ws.Name = List(i) Then
Chk = True
Exit For
End If
Next i
If Chk = False Then
TargetCheck = TargetCheck & ws.Name & vbCrLf
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
End If
Next ws
ActiveWorkbook.Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub
があります。
マクロを実行すると指定の保存先フォルダが開き、指定のセル値がファイル名にて保存されますが、
その都度、保存のダイナログが表示されます。このダイナログを非表示でそのまま指定フォルダ内に保存出来る方法を教えてください。
よろしくお願いいたします。

「エクセルのマクロについて教えてください。」の質問画像

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    申し訳ありません、
    「Application.DisplayAlerts = False」をどのコード部分に入れれば良いのでしょうか。
    よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/02/17 14:12
  • うーん・・・

    ありがとうございます。
    ご指示の通り「If newName = False Then Exit Sub
    Application.DisplayAlerts = False
    ThisWorkbook.SaveCopyAs newName
    Application.DisplayAlerts = True
    Workbooks.Open newName」と設定しましたがやはり保存先のダイナログが開いてしまします。
    Application.DisplayAlerts = False
    ws.Delete
    Application.DisplayAlerts = Trueと言う記述がされてます。それを真似て下さい。
    とはどのようなすればよいでしょうか?無知でご迷惑をお掛け致します、何度も申し訳ありません、解決方法をよろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/02/17 14:39

A 回答 (3件)

VBAソースを開いて、F8キーを押す毎に1ステップずつ実行して行くので、その操作でどこでダイナログ表示されるか、解る筈です。

    • good
    • 0
この回答へのお礼

何度もありがとうございます。
頭の中を一旦整理して、もう一度質問させていただきます。
申し訳ありません。

お礼日時:2023/02/17 16:46

save処理の前なので


ThisWorkbook.SaveCopyAs newName
の前に=False。
その後ろで
=true

既に
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True

と言う記述がされてます。
それを真似て下さい。
この回答への補足あり
    • good
    • 0

Application.DisplayAlerts = Falseを保存の前に記述



その後で戻す。
Application.DisplayAlerts = True
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!