通过vba打开Windows级别文件打开对话框

时间:2014-10-05 09:21:06

标签: vba dialog

使用VBA(Word)

打开标准文件打开对话框时
e.g., Set fDialog = Application.FileDialog(msoFileDialogFilePicker)

我得到了我要求的东西,但这不是我想要的。我默认打开父程序中的选定文件。 (如果在Word中,并显示Excel文件,所选的Excel文件将在Word中打开,而不是与.xls扩展名关联的程序;如果显示PDF,则所选文件将在Word中打开,等等。

如何打开Window级别(与应用程序级别相对)对话框,以便在单击具有非Word扩展名的文档时,将调用与文件扩展名关联的正确程序。 (我知道我可以随时右键点击该文件,然后点击“打开方式...”,但如果我可以避免,我不想向我的员工传授这些信息。 )

1 个答案:

答案 0 :(得分:1)

 Private Sub Tester()
    Dim fd As FileDialog, sh As Object
    Set fd = Application.FileDialog(msoFileDialogOpen)

    With fd
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        If .Show = -1 Then
            Set sh = CreateObject("Shell.Application")
            sh.Open .SelectedItems(1)
        End If
    End With

End Sub