FileDialog 对象

优质
小牛编辑
129浏览
2023-12-01

提供文件对话框,功能与 Microsoft Office 应用程序中标准的“打开”和“保存”对话框类似。利用这些对话框,解决方案的用户可以简便地指定解决方案中应该使用的文件和文件夹。

使用 FileDialog 对象

使用 FileDialog 属性返回一个 FileDialog 对象。FileDialog 属性位于每个单独 Office 应用程序的 Application 对象中。该属性使用一个参数 DialogType 确定该属性返回的 FileDialog 对象类型。FileDialog 对象有四种类型:

  • “打开”对话框:让用户选择一个或多个可以在主机应用程序中使用 Execute 方法打开的文件。
  • “另存为”对话框:让用户选择一个可以使用 Execute 方法保存当前文件的文件。
  • “文件选取器”对话框:让用户选择一个或多个文件。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。
  • “文件夹选取器”对话框:让用户选择一个路径。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。

每个主机应用程序只能实现一个 FileDialog 对象实例。因此,在创建多个 FileDialog 对象时将延续 FileDialog 对象的很多属性。所以,在显示对话框之前请确保已经针对用途正确设置了所有属性。

要使用 FileDialog 对象显示一个对话框,必须使用 Show 方法。对话框显示后,在用户消除对话框之前将不执行任何代码。本示例创建并显示“文件选取器”对话框,并在消息框中显示每个选定的文件。

Sub Main()

    'Declare a variable as a FileDialog object.
    Dim fd As FileDialog

    'Create a FileDialog object as a File Picker dialog box.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    'Declare a variable to contain the path
    'of each selected item. Even though the path is a String,
    'the variable must be a Variant because For Each...Next
    'routines only work with Variants and Objects.
    Dim vrtSelectedItem As Variant

    'Use a With...End With block to reference the FileDialog object.
    With fd

        'Use the Show method to display the File Picker dialog box and return the user's action.
        'The user pressed the action button.
        If .Show = -1 Then

            'Step through each string in the FileDialogSelectedItems collection.
            For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem is a String that contains the path of each selected item.
                'You can use any file I/O functions that you want to work with this path.
                'This example simply displays the path in a message box.
                MsgBox "The path is: " & vrtSelectedItem

            Next vrtSelectedItem
        'The user pressed Cancel.
        Else
        End If
    End With

    'Set the object variable to Nothing.
    Set fd = Nothing

End Sub
FileDialog
多个对象