Открыть диалоговое окно «Открыть» Word 2013 в определенной папке - PullRequest
0 голосов
/ 13 мая 2019

У меня есть простой макрос Word, который показывает устаревшее диалоговое окно Open.

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

Я сейчас пытаюсь открыть его в определенной папке.«C: \ Users \ Paul Schroeter \ Documents \ Документы Microsoft Word».Примерно через час я не нашел макро-аргумента или примера того, как заставить его делать то, что я хочу.

Если вам интересно, зачем мне это нужно, это потому, что каждый раз, когда я использую «Поиск документов »в унаследованном диалоговом окне« Открыть »сбрасывает путь к диалоговому окну« Открыть »на« C: \ Users \ Paul Schroeter \ Documents », что сводит меня с ума, потому что тогда мне приходится возвращать его обратно в папку, где я на самом деле храню своиДокументы Word.

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Ряд встроенных диалоговых окон Word имеет «аргументы диалогового окна», соответствующие некоторым элементам управления / настройкам в диалоговом окне.Список можно найти здесь .Они не являются частью Intellisense и имеют позднюю привязку к объектной модели.Разработчик должен знать, что они существуют, и как их искать и использовать.

Одним из этих встроенных аргументов является установка / чтение полного имени файла из диалогового окна «Файл / Открыть».В VBA аргументы обычно используются в блоке With.Установка аргумента перед методом Show или Display выполняет настройку до того, как диалоговое окно будет показано пользователю.Если он помещен после метода, он используется для чтения выбора пользователя.

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
0 голосов
/ 13 мая 2019

Если вы считаете что-то отличное от Dialogs collection, вы можете использовать свойство 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
...