The VBA FileDialog command is not as full featured as the Windows API approach but is much easier to use. A set of pre-defined File Masks is included to simplify the selection of file types. For the Windows API routines, use the modFileDialog module which also supports VB6.
|(Declarations)||Declarations||Declarations and private variables for the modFileDialogVBA module.|
|VBA_FileDialog_GetFile||Procedure||Launch file open dialog in Access/VBA and return selected file name.|
|VBA_FileDialog_GetFiles||Procedure||Launch file open dialog in Access/VBA and return selected file names.|
|VBA_FileDialog_SaveFile||Procedure||Launch file save dialog in Access/VBA and return selected file name. If the file already exists, the user is prompted to overwrite it before the file name is accepted. Unlike the routines using the Windows API approach in modFileDialog, the VBA file save dialog does not allow you to specify the file type mask.|
|VBA_FileDialog_GetFolder||Procedure||Launch folder open dialog in Access/VBA and return the selected folder name.|
|VBA_SetFileMasks||Procedure||Combine multiple file masks into one.|
|VBA_SetFileMask||Procedure||Set file mask based on specified options. This is similar to SetFileMask in modFileDialog but the name portion doesn't include the file masks.|
' Example of modFileDialogVBA ' ' To use this example, create a new module and paste this code into it. ' Then run the procedure by putting the cursor in the procedure and pressing: ' F5 to run it, or ' F8 to step through it line-by-line (see the Debug menu for more options) Private Sub Example_modFileDialogVBA() ' Comments: Examples of using the modFileDialogVBA module to display the File Open, File Save, and Folder Open Dialogs without using the Windows API calls in VBA. ' Support 32 and 64 bit VBA. Const cstrDefaultFile As String = "C:\Total Visual SourceBook 2013\Samples\example.txt" Dim strFile As String Dim strFiles As String Dim astrFiles() As String Dim strFolder As String ' Use the VBA_FileDialog_GetFile method to Display the file open dialog and retrieve the file name ' This method accepts parameters rather than requiring the class properties to be set. strFile = VBA_FileDialog_GetFile(cstrDefaultFile, "Total Visual SourceBook Example of File Open", "txt All") If strFile <> "" Then MsgBox "You chose this file: " & strFile Else MsgBox "You cancelled the File Open dialog" End If ' Select multiple files by using Shift+Click or Ctrl+Click when the dialog is open If VBA_FileDialog_GetFiles(cstrDefaultFile, "Total Visual SourceBook Example of File Open for Multiple Files", "All", astrFiles()) Then strFiles = Join(astrFiles, vbCrLf) MsgBox "These files were selected: " & strFiles End If ' Use the Save Dialog to get a file name strFile = VBA_FileDialog_SaveFile(cstrDefaultFile, "Total Visual SourceBook Example of File Save") If strFile <> "" Then MsgBox "File Name: " & strFile Else MsgBox "You cancelled the File Save dialog" End If ' Let the user select a folder name strFolder = VBA_FileDialog_GetFolder(cstrDefaultFile, "Total Visual SourceBook Example of Folder Selection") If strFolder <> "" Then MsgBox "Folder Name: " & strFolder Else MsgBox "You cancelled the Select Folder dialog" End If End Sub
The source code in Total Visual Sourcebook includes modules and classes for Microsoft Access, Visual Basic 6 (VB6), and Visual Basic for Applications (VBA) developers. Easily add this professionally written, tested, and documented royalty-free code into your applications to simplify your application development efforts.
Total Visual SourceBook is written for the needs of a developer using a source code library covering the many challenges you face. Countless developers over the years have told us they learned some or much of their development skills and tricks from our code. You can too!
Supports Access/Office 2016, 2013, 2010 and 2007, and Visual Basic 6.0!
"The code is exactly how I would like to write code and the algorithms used are very efficient and well-documented."
Van T. Dinh, Microsoft MVP