我试图在Excel' s(2010)功能区中创建自己的菜单。
我写了下面的Sub来创建一个' test'菜单,但我找不到任何证据表明菜单是在Controls
集合中列出的,而是创建的。
我觉得我已经完成了所有事情,特别是因为我查了一大堆代码示例(example,这对我来说也不适用于其他人)。
我想我的问题是双重的,下面的代码是否会在您的 Excel中生成一个新菜单,如果是这样,我们知道为什么会在我的计算机上失败?
Sub CreateInterface()
Dim Controls As CommandBarControls
Dim CmdBar As CommandBarControl
Dim NewMenu As CommandBarControl
Set Controls = Application.CommandBars("Worksheet Menu Bar").Controls
Set NewMenu = Controls.Add(Type:=msoControlPopup, Temporary:=True, before:=Controls.Count)
NewMenu.Caption = "&Test"
NewMenu.Visible = True
For Each CmdBar In Controls
Debug.Print CmdBar.Caption & "|" & CmdBar.Tag
Next
End Sub
编辑:
感谢D.O.我可以看到代码正常工作它只是不在功能区中创建一个新菜单(如默认菜单(Home,Insert,Page Layout等))。
据我所知,这应该创建一个新菜单,而不是其中一个菜单中的项目,我该如何实际创建一个新菜单?
答案 0 :(得分:1)
据我所知,旧的(2007年之前)CommandBars和Controls方式已经过时,它只会向"加载项"添加按钮。功能区标签。这是为了向后兼容旧的Office解决方案,因此它们仍然可以(在某种程度上)在2007+ Office应用程序下使用。
前进的方向(如果您打算使用Office 2007及更高版本)是修改功能区本身。它是一个全新的范例,实时自定义以完全不同的方式完成,但是如果你掌握它(它并不那么困难)它是非常有用的。我建议谷歌搜索一些功能区教程,并使用"自定义UI编辑器"用于将功能区代码添加到Office文件的工具。 Ron de Bruin的网站始终是获取更多信息的绝佳资源。