|
おはようございます。
>書式3
>Dim BlnRtn As Variant
>BlnRtn= IIf(Application.Dialogs(xlDialogSaveAs).Show(ARG1:=Target), "保存", "キャンセル")
>
>と、true/falseを見させようとすると、今度は、戻り値として、
>保存したファイル名を受け取ることが出来ません
>このため、ファイル名を初期値から変更したときに、その名前を得ることができません。
Application.Dialogs(xlDialogSaveAs).Showによって、保存されるブックは、
ActiveWorkBookですよね!!
でしたら、ActiveWorkBookを調べれば、保存ファイル名は、取得できます。
Sub svsample()
Dim ans As Variant
Dim bknm As String
bknm = "sample"
Application.EnableEvents = False
ans = Application.Dialogs(xlDialogSaveWorkbook).Show(bknm)
Application.EnableEvents = True
If ans Then
MsgBox ActiveWorkbook.FullName & " 保存しました"
End If
End Sub
他にも
Application.GetSaveAsFilenameメソッドを使って、保存ファイルパスだけを
取得して、プログラムで保存するという方法もありますね!!
Sub svsample2()
Dim ans As Variant
Dim bknm As String
bknm = "sample"
ans = Application.GetSaveAsFilename(bknm, "Excelブック (*.xlsx),*.xlsx,Excelマクロ有効ブック(*.xlsm),*.xlsm")
If TypeName(ans) <> "Boolean" Then
MsgBox ans & " 保存する名前です"
ActiveWorkbook.SaveAs ans
End If
End Sub
(2007以上の場合)
|
|