GetOpenFilename with default filename?

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
 
J

Joel

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

chdrive("h:")
chdir("temp")
 
G

Gustaf

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
 
P

Patrick Molloy

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.
 
J

Joel

You can use the filedialog instead

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top