Назначьте переменную через другое офисное приложение - PullRequest
0 голосов
/ 21 июня 2020

У меня есть инструмент управления базой данных, который работает в нескольких приложениях Office. Один из инструментов, которые у меня есть, использует Outlook для получения переменных из пользовательской формы, которые затем отправляются в файл шаблона Word, создавая новый документ Word.

Пока Outlook вызывает Word и создает документ, мне нужна строка код, который также присваивает логической переменной, хранящейся в модуле Word, значение true или false, в зависимости от ввода пользователя. Логическое значение используется для определения того, какие строки кода запускаются в пользовательской форме Word, которую пользователь может позже открыть, но не в самом документе (т.е. вставленном в одно из полей документа).

Заранее спасибо

1 Ответ

1 голос
/ 21 июня 2020

Итак, если я правильно понял ваш вопрос, в вашем приложении Word есть переменная, «хранящаяся в модуле Word». Допустим, эта переменная будет:

Public boolTest As Boolean

Если у вас будет Sub в этом модуле c (в 'Normal.dotm' или в docm документ), скажем:

Sub testBooleanChange(boolT As Boolean)
    boolTest = boolT
    MsgBox boolTest 
End Sub

Если Outlook вызовет вышеуказанный Sub как:

 objWord.Run "testBooleanChange", True

, тогда ваша переменная boolTest примет отправленное логическое значение

Фактически, реальный код, имеющий дело с приведенным выше предложением, будет выглядеть так:

Sub testCallWordProc()
  Dim W As Word.Application
   On Error Resume Next
   Set W = GetObject(, "Word.Application")
   If Err.Number <> 0 Then
        Err.Clear: On Error GoTo 0
        Set W = CreateObject("Word.Application")
   End If
   W.Visible = True
   'If the Sub in discussion exists in a document, un-comment the next line and use your real document full name:
   'W.Documents.Open ("Your doc keeping the sub.docm")
   'If the Sub is inside the 'Normal' you can simply use:
   W.RUN "testBooleanChange", True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...