GetOpenFilename with default filename?

  • Thread starter Thread starter Gustaf
  • Start date Start date
G

Gustaf

I'm trying to adopt the Application.GetOpenFilename method, so I can let go of the dependency for comdlg32.ocx, which is not included in Vista. However, I haven't found a way to have GetOpenFilename start with a default filename. Starting in a given directory works (if I call it before calling GetOpenFilename), but I wonder if it's possible to have the dialog box open with a default filename in that directory? That is, when the dialog opens (in the given directory), the default file should be pre-selected. Is that possible?

Gustaf
 
You need to use chdrive and chdir before calling the getopenfilename.

chdrive("h:")
chdir("temp")
 
Thank you, but maybe you didn't read the question in detail. I'm not asking for default directory, but default filename. Also, when you open default directory, I have found it better to call

Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long

rather than ChDir(). It works with UNC (network) paths too.

If the answer to my question is "you can't do that", that would be okay too.

Gustaf
 
i tried various alternatives to
"Text Files (*.txt), *.txt")

eg

"Excel Files (*.xls),abc.xls"

but they don't "pre select" the required file.
so i guess it can't be done.
 
You can use the filedialog instead

ChDrive ("c:\")
ChDir ("c:\temp")
Set filetoopen = Application.FileDialog(msoFileDialogOpen)
filetoopen.InitialFileName = "book1.xls"
filetoopen.Show
 
Back
Top