Лучший способ, которым я до сих пор придумал, заключается в следующем.
Получить активное окно с помощью Application.ActiveWindow
Этот объект окна имеет свойство с именем Caption. Заголовок появляется в заголовке окна документа.
Затем я использую функцию Win32 EnumWindows () для поиска окна Win32. Я получаю текст окна для каждого окна, возвращаемого EnumWindows () с помощью функции Win32 GetWindowText (). Я пытаюсь найти заголовок в тексте окна и в качестве дополнительной проверки проверяю, чтобы текст окна также содержал строку «Microsoft Word».
Как только я нахожу окно, у меня появляется дескриптор окна Win32, который я затем могу передать функции WinW ShowWindow (hWnd, SW_RESTORE).
Вы также должны позвонить в Application.Activate.
Это решение не является идеальным, например, я не очень хочу предполагать, что заголовок окна всегда будет содержать текст «Microsoft Word», но я также не хочу выбирать неправильное окно.