如何在 Word 中使用 VBA 从下拉列表(内容控件)中获取选定值

How get selected value from drop-down list (Content control) using VBA in Word

我是 word 新手 VBA,但在 excel 中使用很多。我的 word 文档中有一个内容控制组合框。我有可供选择的员工姓名,以及我为他们的电子邮件地址设置的值。 这个想法是通过选中一个复选框向从组合框中选择的人发送电子邮件地址。我现在如何编写代码以在选中复选框时发送电子邮件,但我正在努力从组合框中获取值(即电子邮件地址)。我想要的只是一个代码,它为我提供了从名为“Reviewers”的组合框中选择的值。我需要有关所有代码的帮助,包括如何调暗。

例如,作为直接从 'Reviewers' 下拉菜单运行的 ContentControlOnExit 宏:

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

或者,作为直接从名为 'Send Email':

的复选框运行的 ContentControlOnExit 宏
Private Sub Document_ContentControlOnExit(ByVal CCtrl As ContentControl, Cancel As Boolean)
Dim i As Long, StrEmail As String
With CCtrl
  If .Title = "Send Email" Then
    If .Checked = True Then
      With .Parent.SelectContentControlsByTitle("Reviewers")(1)
        For i = 1 To .DropdownListEntries.Count
          If .DropdownListEntries(i).Text = .Range.Text Then
            StrEmail = .DropdownListEntries(i).Value
            MsgBox StrEmail
            Exit For
          End If
        Next
      End With
    End If
  End If
End With
End Sub