在特定文件夹中打开Word 2013旧版“打开”对话框

时间:2019-05-13 03:42:39

标签: vba ms-word word-vba

我有一个简单的Word宏,它显示了旧的“打开”对话框。

Sub LegacyOpen()
DoEvents
Dialogs(wdDialogFileOpen).Show
End Sub

我现在正在尝试使其在特定文件夹中打开。 “ C:\ Users \ Paul Schroeter \ Documents \ Microsoft Word文档”。 大约一个小时后,我没有找到宏参数或如何使它执行我想要的操作的示例。

如果您想知道为什么需要这样做,这是因为每次我在旧版“打开”对话框中使用“搜索文档”时,它将“打开”对话框路径重置为“ C:\ Users \ Paul Schroeter \ Documents”,即令我发疯,因为然后我必须将其改回到实际上保留我的Word文档的文件夹。

2 个答案:

答案 0 :(得分:1)

许多内置的Word对话框具有与对话框中的控件/设置的 some 相对应的“对话框框参数”。可以找到列表here。这些不是Intellisense的一部分,而是后期绑定到对象模型中。开发人员需要知道它们的存在以及如何查找和使用它们。

这些内置参数之一是从“文件/打开”对话框中设置/读取文件全名。在VBA中,参数通常在With块中使用。将参数放在ShowDisplay方法之前,会在向用户显示对话框之前执行设置。如果将其放置在方法之后,则将其用于读取用户的选择。

Sub WordFileOpen()
    Dim dlg As Word.Dialog
    Dim sPath As String

    Set dlg = Application.Dialogs(wdDialogFileOpen)
    sPath = "C:\Users\Paul Schroeter\Documents\Microsoft Word Documents"
    With dlg
        .Name = sPath
        .Show
    End With
End Sub

答案 1 :(得分:0)

如果您考虑的内容与Dialogs集合不同,则可以使用FileDialogs属性。这是工作示例:

Sub OtherWindowType()
    Dim FD As FileDialog
    Set FD = Application.FileDialog(msoFileDialogFilePicker)

    With FD
        .AllowMultiSelect = False
        .InitialFileName = "c:\" '...your path here
        .Show
    End With

    'if you want to open the file...
    If FD.SelectedItems.Count > 0 Then
        Documents.Open FD.SelectedItems(1)
    End If

End Sub