Расширенные формы в Word

337
dreamerboy

Я ищу, чтобы создать форму в Word, где значение, выбранное в поле со списком, будет определять текст в другом разделе формы.

Во-первых, если я создаю поле со списком в документе Word, как я могу ссылаться на это поле со списком в VBA?

Спасибо.

0

2 ответа на вопрос

1
Rich Michaels

Используя элемент управления «Свойства», установите уникальное значение в TAG.

enter image description here

Затем в вашем 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