Application.GetOpenFilename method (Excel)
Displays the standard Open dialog box and gets a file name from the user without actually opening any files.
expression.GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
expression A variable that represents an Application object.
|FileFilter||Optional||Variant||A string specifying file filtering criteria.|
|FilterIndex||Optional||Variant||Specifies the index numbers of the default file filtering criteria, from 1 to the number of filters specified in FileFilter. If this argument is omitted or greater than the number of filters present, the first file filter is used.|
|Title||Optional||Variant||Specifies the title of the dialog box. If this argument is omitted, the title is "Open."|
|MultiSelect||Optional||Variant||True to allow multiple file names to be selected. False to allow only one file name to be selected. The default value is False.|
This string passed in the FileFilter argument consists of pairs of file filter strings followed by the MS-DOS wildcard file filter specification, with each part and each pair separated by commas. Each separate pair is listed in the Files of type drop-down list box. For example, the following string specifies two file filters—text and addin:
"Text Files (*.txt), *.txt,Add-In Files (*.xla), *.xla"
To use multiple MS-DOS wildcard expressions for a single file filter type, separate the wildcard expressions with semicolons; for example:
"Visual Basic Files (*.bas; *.txt), *.bas;*.txt".
If FileFilter is omitted, this argument defaults to
"All Files (*.*), *.*".
This method returns the selected file name or the name entered by the user. The returned name may include a path specification. If MultiSelect is True, the return value is an array of the selected file names (even if only one file name is selected). Returns False if the user cancels the dialog box.
This method may change the current drive or folder.
This example displays the Open dialog box, with the file filter set to text files. If the user chooses a file name, the code displays that file name in a message box.
fileToOpen = Application _ .GetOpenFilename("Text Files (*.txt), *.txt") If fileToOpen <> False Then MsgBox "Open " & fileToOpen End If
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.