vba 遍历word里插入的所有ActiveX 文本框控件 ,并把文本框内的内容合并用|隔开
分类:VBA
以下是 VBA 宏代码,可以帮助你遍历 Word 文档中的 ActiveX 文本框控件,并将其中的文本内容合并并用“|”符号隔开:
Sub MergeAllTextBoxControls()
Dim i As Long
Dim ctrl As InlineShape
Dim tb As Object 'Forms.TextBox.1 类型对象
Dim mergedText As String '所有文本框内容合并后的字符串
mergedText = ""
'逐个遍历所有内嵌形状
For i = ActiveDocument.InlineShapes.Count To 1 Step -1
Set ctrl = ActiveDocument.InlineShapes(i)
If ctrl.Type = wdInlineShapeOLEControlObject And ctrl.OLEFormat.ClassType = "Forms.TextBox.1" Then
Set tb = ctrl.OLEFormat.Object '获取 Forms.TextBox.1 类型对象
If Not tb Is Nothing Then
mergedText = mergedText & tb.Text & "|"
End If
End If
Next i
'移除最后一个“|”符号
If Right(mergedText, 1) = "|" Then
mergedText = Left(mergedText, Len(mergedText) - 1)
End If
'在消息框中显示合并后的文本内容
MsgBox mergedText
End Sub
请按照以下步骤执行该宏:
- 打开你要遍历 ActiveX 文本框并合并内容的 Word 文档。
- 按下“Alt + F11”组合键打开 Microsoft Visual Basic for Applications 窗口。
- 在左侧的“项目资源管理器”窗格中,双击要编辑宏的文档名称。
- 在“代码”窗格中,粘贴以上 VBA 代码。
- 点击“运行”按钮或按下“F5”键,执行宏。
这样,该宏将遍历 Word 文档中的所有 ActiveX 文本框控件,并将其中的文本内容合并成一个字符串,并在消息框中显示该字符串。你可以根据需要将其修改为将文本内容写入 Word 文档中的代码。