アプリ版:「スタンプのみでお礼する」機能のリリースについて

ブック名が「ひな形」
のファイル形式が「マクロ有効テンプレート」
に下記のコードが有ります。
Sub ブック保存()
Application.Dialogs(xlDialogSaveAs).Show Arg1:=Range("x1").Value
End Sub
マクロを実行しますと
ダイナログが開き、指定したフォルダー内に
セル値X1がファイル名として保存方式がマクロ有効ブックとして
保存されます。
このマクロが実行されたタイミングで
指定したフォルダー内に
セル値X1がファイル名として保存方式がマクロ有効ブックで保存されたファイルをクローズする方法を教えてください。
よろしくお願いいたします。

A 回答 (1件)

こんにちは


Application.Dialogs(xlDialogSaveAs).Show は 自身を名前を付けて
保存する結果になりますので開いていたブック自体が名前と保存箇所が変わり開いている状態になると思います。
ですので
>セル値X1がファイル名として保存方式がマクロ有効ブックで保存されたファイルをクローズする方法を教えてください。
は、自身を閉じる事になります。

テンプレートブックをそのまま開いた状態で名前を付け保存する場合は
SaveCopyAs などになると思います。
方法は色々ありますが、Application.Dialogs(xlDialogSaveAs).Showは
使わない方が簡単です。

例を挙げると(FolderPicker)の例
Sub ブック保存()
Dim filePath As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "保存先フォルダの選択"
.InitialFileName = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
If .Show = True Then
filePath = .SelectedItems(1)
End If
End With

If filePath <> "" Then
ActiveWorkbook.SaveCopyAs (filePath & "\" & Range("x1").Text & ".xlsm")
End If
End Sub

元々、保存するブックはコピーなので開かれていません。

ファイル保存で対策が必要なプロセス(同名ファイルの存在確認など)は割愛していますので組み込みをしてください。

出来れば、保存先を決めておいて(ファイル名と同様の方法で)Dialogなどを使わず ActiveWorkbook.SaveCopyAsする方が煩わしくないと思います。
これは別の話ですね。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
詳しい説明も感謝いたします。

お礼日時:2022/03/31 14:31

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