如何在 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
我是 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