• ベストアンサー

エクセル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

質問者が選んだベストアンサー

  • ベストアンサー
  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

エラーナンバーで判断してフォルダ追加する方法はいかがでしょう。 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

AQUALINE
質問者

お礼

最初の、Dim ddd As String は bbb ですね? そこだけ直してやってみましたら思ったようにできました。 ありがとうございました。 たすかりました。

その他の回答 (2)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.3

> 最初の、Dim ddd As String は bbb ですね? 失礼、そのとおりです。

AQUALINE
質問者

お礼

わざわざありがとうございました。 本当にたすかりました。

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

大体こんな感じで。 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

AQUALINE
質問者

お礼

ありがとうございました。 難しすぎてよくわかりませんでしたが、たしかにCドライブに「tmptmp」フォルダーが作成されました。 > Dドライブが存在する場合の処理は とはどういう意味なのでしょうか? わかりませんでした。

関連するQ&A

専門家に質問してみよう