- ベストアンサー
エクセルVBA Application.GetSaveAsFilenameでのフォルダー名指定
いつも大変お世話になりありがとうございます。 早速ですが、教えてください。 以下のマクロでファイル名を指定して保存させようと思うのですが、デフォルトで表示するフォルダーをたとえば、Cドライブの「AAAAA」という指定はできますでしょうか? また、そのパソコンに「AAAAA」というフォルダーが無かったら、作るようにしたいのですがどう記述すればよいのでしょうか? Sub test() Dim aaa As String aaa = Format(Now, "MMDDHHmm") FName = Application.GetSaveAsFilename(InitialFilename:=aaa & ".csv", FileFilter:="CSVファイル(*.csv), *.csv") '以下略 End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーナンバーで判断してフォルダ追加する方法はいかがでしょう。 Sub test() Dim aaa As String Dim ddd As String On Error Resume Next bbb = "C:\AAAAA" ChDir bbb If Err.Number = 76 Then response = MsgBox( _ "フォルダ" & bbb & "は存在しません。作成しますか?", _ vbYesNo + vbQuestion, _ "フォルダの追加" _ ) If response = vbYes Then MkDir bbb ChDir bbb End If End If aaa = Format(Now, "MMDDHHmm") fname = Application.GetSaveAsFilename(InitialFilename:=aaa & ".csv", _ FileFilter:="CSVファイル(*.csv), *.csv") End Sub
その他の回答 (2)
- TTak
- ベストアンサー率52% (206/389)
> 最初の、Dim ddd As String は bbb ですね? 失礼、そのとおりです。
お礼
わざわざありがとうございました。 本当にたすかりました。
- kmb01
- ベストアンサー率45% (63/138)
大体こんな感じで。 Dドライブが存在する場合の処理は適当に追加してください。 Sub tmp() Dim s$, path_org$, path_tgt$ path_org = CurDir path_tgt = "C:\tmptmp\" If (Dir(path_tgt, vbDirectory) = "") Then MkDir path_tgt ChDir path_tgt s = Application.GetSaveAsFilename Debug.Print s ChDir path_org End Sub
お礼
ありがとうございました。 難しすぎてよくわかりませんでしたが、たしかにCドライブに「tmptmp」フォルダーが作成されました。 > Dドライブが存在する場合の処理は とはどういう意味なのでしょうか? わかりませんでした。
お礼
最初の、Dim ddd As String は bbb ですね? そこだけ直してやってみましたら思ったようにできました。 ありがとうございました。 たすかりました。