我编写了一个excel加载项,并且有一个带有两个按钮的用户窗体:确定和取消。在“Ok”上,我的宏被调用并将运行。取消时,它将关闭用户表单。
我的问题:如何在excel中的加载项工具栏上显示加载项,并且在单击加载项时我的用户窗体是否会自动激活?
谢谢!
答案 0 :(得分:2)
要使用旧的命令栏代码,它可以像这样简单:
Sub AddButton()
Dim btn As CommandBarButton
DeleteButton
Set btn = Application.CommandBars(1).Controls.Add(Type:=msoControlButton)
With btn
.Caption = "some text"
.OnAction = "'" & ThisWorkbook.Name & "'!macro_name"
.Style = msoButtonCaption
.Tag = "MyTag"
End With
End Sub
Sub DeleteButton()
Dim ctl As CommandBarControl
For Each ctl In Application.CommandBars(1).Controls
If ctl.Tag = "MyTag" Then ctl.Delete
Next ctl
End Sub
从Workbook_Open事件中调用AddButton,并确保在Workbook_BeforeClose中清理。 ;)因此,在加载项的ThisWorkbook模块中:
Private Sub Workbook_Open()
AddButton
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteButton
End Sub
答案 1 :(得分:0)
几天前我刚刚发现了如何做到这一点!
单击类型并编写此代码:
http://schemas.microsoft.com/office/2006/01/customui'>
使用imageMso,您可以选择按钮的图像。 You can see all the images available
单击“验证”,然后单击“生成回调”。复制回调代码。它看起来像
' Button1 onAction的回调 Sub callMyMacro(控制为IRibbonControl) End Sub
将版本保存在UI编辑器中并关闭。
现在用宏打开文件,插入一个新模块并粘贴回调代码。在sub的中间,调用你的宏。
' Button1 onAction的回调 Sub callValidation(控制为IRibbonControl) 打电话给myMacro End Sub
到目前为止,您应该可以在插件标签中看到您的宏。将文件另存为AddIn,然后您就绪了。