Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7541 / 76732 ←次へ | 前へ→

【74777】Re:ダイアログをキャンセルした後の処理
発言  ichinose@  - 13/9/13(金) 6:46 -

引用なし
パスワード
   おはようございます。


>書式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以上の場合)

1 hits

【74769】ダイアログをキャンセルした後の処理 3891 13/9/12(木) 15:10 質問
【74775】Re:ダイアログをキャンセルした後の処理 γ 13/9/12(木) 20:53 発言
【74778】Re:ダイアログをキャンセルした後の処理 γ 13/9/13(金) 6:57 発言
【74777】Re:ダイアログをキャンセルした後の処理 ichinose@ 13/9/13(金) 6:46 発言
【74779】Re:ダイアログをキャンセルした後の処理 3891 13/9/13(金) 9:13 お礼
【74780】Re:ダイアログをキャンセルした後の処理 13/9/13(金) 9:45 回答
【74799】Re:ダイアログをキャンセルした後の処理 3891 13/9/16(月) 16:34 お礼

7541 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free