在ms中Word如何使用VBA添加CommandButton并为其指定一个宏(仍在使用VBA)?
我有代码添加命令按钮。每次运行第一个宏时,如何在不添加私有子的情况下自动添加宏?
Sub CompareCase()
Dim testname As String
Dim test1, test2, test3
test1 = ""
test2 = ""
test3 = ""
testname = LCase(InputBox("Enter name of test.")
Call SelectAndProcess
Select Case testname
Case "string1"
ActiveDocument.compare Name:=test1, DetectFormatChanges:=False, CompareTarget:=wdCompareTargetOriginal
Case "string2"
ActiveDocument.compare Name:=test2, DetectFormatChanges:=False, CompareTarget:=wdCompareTargetOriginal
Case "string3"
ActiveDocument.compare Name:=test3, DetectFormatChanges:=False, CompareTarget:=wdCompareTargetOriginal
Case Else
MsgBox "Test not found"
End Select
Call Macro_Add_Button
End Sub
我想在创建时为CommandButton指定一个宏。
Sub Macro_Add_Button()
Dim oCtl
Dim oCmd
ActiveDocument.Content.InsertParagraphAfter
Set oCtl = ActiveDocument.InlineShapes.AddOLEControl(ClassType:="Forms.CommandButton.1", Range:=ActiveDocument.Paragraphs.Last.Range)
Set oCmd = oCtl.OLEFormat.Object
oCmd.Caption = "Score"
End Sub
答案 0 :(得分:0)
您的想法存在的问题是文档表面上的MSForms控件被视为属于该文档的对象。因此,它链接到的代码必须位于ThisDocument模块中,其名称必须是控件的名称,后跟下划线并单击:CommandButton1_Click。
如果您需要更多灵活性,请考虑使用MacroButton字段。您可以将看起来像按钮的(内联)图形指定为“显示文本”。并且您的代码可以将ButtonFieldClicks属性(Application.Options.ButtonFieldClicks)更改为一(1),以便它在单个而不是默认的双击上触发。可以将MacroButton字段分配给任何“Public Sub”过程。