1

我已经为 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 创建宏的代码。但是第二行代码中出现了错误。

谁能建议我如何在单击按钮时获取可执行宏?我在上面的代码中有什么错误吗?

4

2 回答 2

3

对于我拥有的 Office 2010:

1.可以将宏分配给将显示在窗口左上角的按钮(快速访问工具栏)当您创建宏时,它会询问您是否要将其分配给键盘或按钮,您可以在其中选择按钮

2.您可以添加一个command button或任何其他控件,当您单击它时将运行代码。为此,首先您必须将“命令按钮”添加到功能区,以便您可以在页面中创建按钮。要添加它,您可以单击 Office 按钮,转到Options,然后转到Customize Ribbon,然后All commandsChoose commands from下拉列表中选择。找到Command Button并将其添加到功能区的某个位置。您可能必须在功能区中创建自定义选项卡。当您的功能区中有按钮时,您可以将按钮添加到您的页面,添加功能区后双击它,您可以在按钮的事件处理程序中编写代码。您可以在那里复制并粘贴您的宏代码或使用call命令 调用宏如何添加按钮和调用宏

于 2013-08-12T05:53:56.970 回答
1

关于您在单击而不是实际运行时显示 VB 代码的命令按钮的问题 - 请确保您未处于设计模式。查看功能区上的开发人员选项卡,确保未突出显示设计模式。

于 2013-10-08T16:17:14.367 回答