Я ищу, чтобы создать форму в Word, где значение, выбранное в поле со списком, будет определять текст в другом разделе формы.
Во-первых, если я создаю поле со списком в документе Word, как я могу ссылаться на это поле со списком в VBA?
Спасибо.
2 ответа на вопрос
1
Rich Michaels
Используя элемент управления «Свойства», установите уникальное значение в TAG.
Затем в вашем VBA сделать что-то вроде ...
Dim cc As ContentControl For Each cc In ActiveDocument.ContentControls If cc.Tag = "MyCombo" Then 'then check the value If cc.Range.Text = "Do Wah Diddy Diddy" Then 'do something End If End If Next
Должен ли этот код находиться под определенным модулем и подпрограммой, такой как ComboBox1_Change?
dreamerboy 6 лет назад
0
@dreamerboy, если вы хотите предпринять немедленные действия при выборе, для этого требуется специальная подпрограмма, добавленная в класс «ThisDocument» шаблона или документа. Я добавлю еще один отдельный ответ.
Rich Michaels 6 лет назад
0
0
Rich Michaels
Если вы предпринимаете немедленные действия, когда конечный пользователь выбирает элемент из поля со списком управления контентом, то вам нужен Private Sub в классе ThisDocument.
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
И в нем вы можете добавить метод Select Case, чтобы проверить тег Content Control и принять меры. Это пример из одного из моих приложений.
Select Case ContentControl.Tag 'Cognitive domain Case "LDT_L1" For r = 0 To UBound(AchKnowledgeArray) If ContentControl.Range.Text = AchKnowledgeArray(r) Then r = r + 1 Exit For End If Next r