I am using
GetSaveAsFilename in VBA for Excel. Is there any way to give this a default folder to open up to? For example, I always want it to start at
C:\MyDocuments\Music when it is called.
FileDialog object offers way more flexibility than
GetSaveAsFilename (and its sibling
Dim tuneSaver As FileDialog Set tuneSaver = Application.FileDialog(msoFileDialogSaveAs) With tuneSaver .Title = "Save this tune as..." .InitialFileName = "C:\MyDocuments\Music\" ' Set other properties here... .Show End With
Note that an
.InitialFileName longer than 256 characters will cause a run-time error.
See VBA help on
FileDialog. It has quite a few useful properties, including e.g.
AllowMultiSelect (though admittedly this one is irrelevant when saving).
x = Application.GetSaveAsFilename(InitialFileName:="C:\mydocuments\music\", _ fileFilter:="Text Files (*.*), *.*")
However, if you have spaces in the filespec it gets a little trickier. For example, this:
x = Application.GetSaveAsFilename(InitialFileName:="%USERPROFILE%\My Documents\My Music", _ fileFilter:="Text Files (*.*), *.*")
only gets as far as My Documents and thinks that My Music is the filename. Hope this helps.