如何使用 VBA 从 word 内容控件中获取下拉值(不显示文本)

how to get dropdown value (not display text) from word content control using VBA

我的 word 文档中有一个下拉内容控件元素。当我查看该内容控件的属性时,它们定义了 "Display Name" 和 "Value"。我找到了 VBA 显示如何获取显示 text/name 的代码,但我找不到任何显示如何使用 VBA.

获取值信息的代码

我基本上想从中拉出 "value" 字段和其他几个下拉菜单,通过 VBA 填写文本字段。

尝试:

Private Sub Document_ContentControlOnExit(ByVal CCtrl As ContentControl, Cancel As Boolean)
Dim i As Long, StrOut As String
With CCtrl
  For i = 1 To .DropdownListEntries.Count
    If .DropdownListEntries(i).Text = .Range.Text Then
      StrOut = .DropdownListEntries(i).Value
      Exit For
    End If
  Next
End With
MsgBox StrOut
End Sub

这是一个基于 Paul 上面代码的函数。

Function CCValue(ccMyContentControl As ContentControl) As String
    ' Charles Kenyon 29 September 2020
    '
    ' Function based on Paul Edstein's Code
    ' 
    '
    If ccMyContentControl.Type <> wdContentControlDropdownList Then
        If ccMyContentControl.Type <> wdContentControlComboBox Then
            CCValue = ccMyContentControl.range.Text
            Exit Function
        End If
    End If
    Dim i As Long
    With ccMyContentControl
        For i = 1 To .DropdownListEntries.Count
            If .DropdownListEntries(i).Text = .range.Text Then _
                CCValue = .DropdownListEntries(i).Value
        Next i
    End With
End Function

当提供内容控件时,它 returns 下拉列表或组合框 CC 的值以及任何其他内容控件上的文本。