我已经为 word 模板创建了一个 VBA 宏,我想将它关联到一个按钮(图形按钮,不是键盘按钮)。创建宏基本上有两种方法:
1) 使用宏记录器
2) 使用 VBA 为应用程序从头开始编写宏
但我发现这些方式存在几个问题:
我尝试了第一个,我想要的是在按钮 onclick 事件上执行宏。但我不知道如何将该宏分配给该按钮。
对于第二个选项,我尝试了以下过程:
按 Alt + F11 转到 VB。在工具菜单上,单击引用。选择 Microsoft Visual Basic for Applications Extensibility 的参考。插入一个新模块,然后添加以下代码示例。
Sub Test()
'Add a command button to a new document
Dim doc As Word.Document
Dim shp As Word.InlineShape
Set doc = Documents.Add
Set shp = doc.Content.InlineShapes.AddOLEControl(ClassType:="Forms.CommandButton.1")
shp.OLEFormat.Object.Caption = "Click Here"
'Add a procedure for the click event of the inlineshape
'**Note: The click event resides in the This Document module
Dim sCode As String
sCode = "Private Sub " & shp.OLEFormat.Object.Name & "_Click()" & vbCrLf & _
" MsgBox ""You Clicked the CommandButton""" & vbCrLf & _
"End Sub"
doc.VBProject.VBComponents("ThisDocument").CodeModule.AddFromString sCode
End Sub
这是通过 Vb 创建宏的代码。但是第二行代码中出现了错误。
谁能建议我如何在单击按钮时获取可执行宏?我在上面的代码中有什么错误吗?