ギリギリ行けるお一人様のライン

ファイル.xlsm を開いて、(sheet1,sheet2,sheet3があったとして)
マクロ実行すると、
sheet2,sheet3 を削除し、
ファイル(配布用20200131版).xlsx でマクロなしブックとして別名保存したいです。

保存先は、ファイル.xlsm を開いた場所と同じ場所に、
20200131の部分は、自動的に当日の日付を入れたいです。

具体的には、
Book名のPath & Book名&"(配布用"& today() &"版).xlsx" のようにです。

また、
「このシートは完全に削除されます。続けますか?」のメッセージと、
マクロなしブックで保存するときの
「マクロなしのブックとして保存するには「はい」をクリックしてください」のメッセージも
省略して表示されないようにしたいです。
可能でしょうか?

A 回答 (3件)

なかなか終了しませんね?


もしかしたら下図のようなメッセージも省略したいのでしょうか?
それでしたら以下のようにされると良いと思います。

Sub Sample()

Dim ファイル名 As String
Dim 文字長 As Long

 文字長 = Len(ThisWorkbook.FullName) - 5
 ファイル名 = Left(ThisWorkbook.FullName, 文字長) & _
        "(配布用" & _
        Format(Date, "yyyymmdd") & _
        "版).xlsx"
 Application.DisplayAlerts = False
 If Dir(ファイル名) <> "" Then Kill (ファイル名)
 Sheets(Array("Sheet2", "Sheet3")).Delete
 ActiveWorkbook.SaveAs Filename:=ファイル名, FileFormat:=xlOpenXMLWorkbook
 Application.DisplayAlerts = True

End Sub
「【ExcelVBA】指定の書式で、マクロ」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。無事解決しました。

お礼日時:2020/02/08 17:27

こんな感じの事でしょうか?



Sub Sample()

Dim ファイル名 As String
Dim 文字長 As Long

 文字長 = Len(ThisWorkbook.FullName) - 5
 ファイル名 = Left(ThisWorkbook.FullName, 文字長) & _
        "(配布用" & _
        Format(Date, "yyyymmdd") & _
        "版).xlsx"
 Application.DisplayAlerts = False
 Sheets(Array("Sheet2", "Sheet3")).Delete
 ActiveWorkbook.SaveAs Filename:=ファイル名, FileFormat:=xlOpenXMLWorkbook
 Application.DisplayAlerts = True

End Sub
    • good
    • 1
この回答へのお礼

すごいです。
試しにマクロを実行して、
「あれ?何も起きない」と思ったら、マクロが置いてある場所に希望通りのエクセルが保存されていました。
一瞬で実行完了してしまうので驚きました。
大変助かりました。
ありがとうございました。

お礼日時:2020/01/31 23:58

こんばんは。



>メッセージも省略して表示されないようにしたいです。
警告メッセージを非表示にするには、
 Application.DisplayAlerts = False
を実行することで可能です。
対象となる処理が終わったところで、Trueに戻しておくのがよいでしょう。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A