在Excel中使用VBA自定义功能区

时间:2013-08-29 22:35:50

标签: excel vba excel-vba ribbon

我已经了解到在this中无法在Excel中创建自定义标签!发布(与MSProject不同)

具体来说,我可以将宏的路径更改为当前位置吗?

编辑 似乎这page可能会导致答案,但我仍然不知道如何,但

更详细的情况描述:

用户将下载一个文件,其中包含材料,设备,人工清单。每列包含有关数量,价格等的信息 当用户点击我要创建的这个按钮(我手动创建)时,另一个工作簿中的一个名为“Main”的宏启动并将整个工作表(内容)复制到自身并执行程序所做的一些操作。

所以我面临的问题是,我正在向客户发送一个新版本,他必须把它放在确切的位置,否则它将无法正常工作。由于涉及Mac和Windows计算机的混合,我宁愿看到当用户打开WorkBook B(包含代码的那个)时按钮被分配给过程的情况。

这样,新版本必须只打开一次,然后连续使用,用户只需打开下载的文件,单击相应的按钮,WorkBook B将自行打开并执行。

也许还有其他方法可以解决这个问题。我没有检查是否更容易将快捷访问工具栏中的按钮分配给...

1 个答案:

答案 0 :(得分:7)

这是我用来添加自定义工具栏的一些代码:

Set cbToolbar = Application.CommandBars.Add(csToolbarName, msoBarTop, False, True)

With cbToolbar
    Set ctButton1 = .Controls.Add(Type:=msoControlButton, ID:=2950)
    Set ctButton2 = .Controls.Add(Type:=msoControlButton, ID:=2950)
    Set ctButton3 = .Controls.Add(Type:=msoControlButton, ID:=2950)
End With

With ctButton1
    .Style = msoButtonIconAndCaption
    .Caption = "Set &Picklists"
    .FaceId = 176
    .OnAction = "SetPicklist"
End With

With ctButton2
    .Style = msoButtonIconAndCaption
    .Caption = "Set &Defaults"
    .FaceId = 279
    .OnAction = "SetDefaults"
End With

With ctButton3
    .Style = msoButtonIconAndCaption
    .Caption = "&Visibility Settings"
    .FaceId = 2174
    .OnAction = "VisibilitySettings"
End With


With cbToolbar
    .Visible = True
    .Protection = msoBarNoChangeVisible
End With

'OnAction'控制运行的宏...如果要扩展它以在特定工作簿上运行宏,请使用“whatever.xls!MacroName”