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

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

Спасибо.

2 ответа2

1

Используя элемент управления «Свойства», установите уникальное значение в 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
0

Если вы предпринимаете немедленные действия, когда конечный пользователь выбирает элемент из поля со списком управления контентом, то вам нужен 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .