Есть ли способ получить объект выделения Word или объект «активный документ» без использования Word Interop - PullRequest
0 голосов
/ 17 апреля 2020

Я диагностирую приложение Visual Basi c, которое использовало сборку взаимодействия Word для автоматизации некоторых процессов Office. Он работал в нашей производственной среде и работал до (как мне кажется) автоматического обновления c для экземпляра Office на пользовательских машинах.

В ходе моих исследований, направленных на решение этой проблемы, мне сообщили, что сборки взаимодействия Office зависят от того, все ли пользователи используют одну и ту же версию Office. Поскольку это не реалистичный сценарий c, я пытаюсь изменить текущий код, чтобы избавить его от зависимости от сборки взаимодействия Word, включая изменение типов значений переменных, участвующих в типе Object, аналогично примеру кода ниже:

    Dim objBook As Object
    Dim objBooks As Object
    Dim objSheets As Object
    Dim objSheet As Object
    Dim range As Object
    ' Instantiate Excel and start a new workbook.
    objApp = CreateObject("Excel.Application")
    objBooks = objApp.Workbooks
    objBook = objBooks.Add
    objSheets = objBook.Worksheets
    objSheet = objSheets.Item(1)
    range = objSheet.Range("A1")
    'Set the range value.
    range.Value = "Hello, World!"
    'Return control of Excel to the user.
    objApp.Visible = True
    objApp.UserControl = True 

Можно ли каким-либо образом определить объекты ActiveDocument и Selection из переменной, которая, хотя и может содержать объект Application, имеет тип Object? Я не могу назвать его Excel.Application , потому что это будет означать ссылку на взаимодействие и последующее поражение цели.

Кстати, я использую Word для Office 365 и VS2017 на Windows 10 64-бит.

Любые идеи и / или предложения, конечно, будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...