Using MSComDlg.CommonDialog to make a Directory Browser in VBScript


I am having a problem with VBScript and the common dialog (MSComDlg.CommonDialog).
What I am trying to do is build a dialog that allows me to select a target
directory. I am trying to copy this functionality from the Microsoft Word 2003
Dialog where a user can change the default path for documents. Tools - Options -
File Locations - Documents - Modify. I know about the function  Shell.Application
- BrowseForFolder but it does look as good as the Office Dialog I want to simulate.

So really in the code below I want to make it only browse directories and
remove the file filter (Files of type:) - how can this be done. As well
I want to make it only display directories and not list any files.

Enough waffle - here is the code.



Public Const ofnAllowMultiSelect = &H200
Public Const ofnCreatePrompt = &H2000
Public Const ofnFileMustExist = &H1000
Public Const ofnHideReadOnly = &H4
Public Const ofnNoNetworkButton = &H20000
Public Const ofnNoReadOnlyReturn = &H8000
Public Const ofnNoTestfileCreate = &H10000
Public Const ofnNoValidate = &H100
Public Const ofnOverwritePrompt = &H2
Public Const ofnPathMustExist = &H800
Public Const ofnReadOnly = &H1
Public Const ofnShareAware = &H4000
Public Const ofnExplorer = &H80000
Public Const ofnNochangedir = &H8

Dim oComDlg
Dim path_name
Set oComDlg = CreateObject("MSComDlg.CommonDialog")

path_name = ""
With oComDlg
            .DialogTitle = "Please select Target Directory"
            .InitDir = "C:\"
            .Filter = ""
            .FilterIndex = 0
            .MaxFileSize = 260
            .FileName = "*.*"
            .Flags = ofnPathMustExist Or ofnHideReadOnly Or ofnExplorer Or ofnNoValidate Or ofnNochangedir
End With                        
path_name = Left(oComDlg.filename,InStrRev(oComDlg.filename,"\"))

If path_name = "" Then
      MsgBox "User Chose Cancel"
      wscript.quit 0
End If
msgbox "Path Name" & path_name

Who is Participating?
Take a look at the following discussions:

The first says that you cannot select folders using the Common Dialog, and the second says that the MS Office 2003 dialog boxes are subclassed from the Common Dialog.


  Nayer Naguib
Unfortunately, the Common Dialog component *cannot* be used to browse for folders.


  Nayer Naguib
whorsfallAuthor Commented:

Thanks for your answer. How is it Microsoft are able to do this with Office 2003 - it looks like a common dialog to me. If you try it you can see they can achieve the result - try changing any of the File locations win Word 2003 and you will see what I mean.


The dialog that appears when you use Microsoft Office 2003 is *not* the MS Common Dialog. I think MS Office applications inherit from the Common Dialog component, and add some extra functionality. If you take a closer look at the dialog box that appears when you want to modify file locations in Word 2003, you will see a "Back" button that stores the browsing history, a "Search the Web" button, and a "Tools" drop down menu.


  Nayer Naguib
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.