Excel隐藏/显示function区上除自定义选项卡外的所有选项卡
如何使用VBA(而非XML)隐藏和显示所有标准Excelfunction区选项卡。 我不想隐藏整个function区(就像这里问的: VBA在Excel中最小化function区 )只是选项卡。 我知道如何使用XML的startFromScratch,所以请不要暗示或其他的XML解决scheme。
到目前为止,我已经做了广泛的谷歌search,并看着:
- http://msdn.microsoft.com/en-us/library/office/ee390805(v=office.11).aspx
- http://msdn.microsoft.com/en-us/library/microsoft.office.tools.ribbon.officeribbon.startfromscratch.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
- 在Excel中使用VBA自定义function区
- 使用Excel VBA在XLS文件中显示Excel 2007function区
- 使用Excel VBA在XLS文件中显示Excel 2007function区
- function区GUI指南
- Excel CustomUIfunction区布局
- http://www.rondebruin.nl/win/s2/win012.htm
我所说的是我已经做了大量的search,并且尝试了很多东西而没有得到结果。
如何使用VBA(不是XML)隐藏和显示所有标准Excelfunction区选项卡?
答案是“ 你不能 ”。
AFAIK,你不能这样做使用VBA。 不幸的是VBA不公开这些标签。 您所拥有的唯一选项如下图所示
所以你可以使用命令栏,commandbarButton,commandbarComboBox等…
你可以说Set cbar = Application.CommandBars("Ribbon")
但之后,你将面临的问题是如何获得标签的句柄。
您可以使用VBA使用function区做什么:
- 确定是否一个特定的控件是启用/可见/按下(切换框/checkbox)
- 获取控件的标签,屏幕提示或超级用户界面显示与控件关联的图像。
- 执行一个特定的控制。
使用VBA的function区无法做什么:
- 确定当前select哪个选项卡。
- 激活特定的选项卡。
- 隐藏特定的选项卡
- 添加一个新标签。
- 添加一个新的组到一个标签。
- 添加一个新的控件。
- 删除/禁用/隐藏控件。
但是,你可以使用XML来实现你想要的。 例如
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab idMso="TabReview" visible="false" /> </tabs> </ribbon> </customUI>
但我想你不想通过XML路线。
您确实可以使用VBA隐藏/显示色带。 这里是一个例子:
<ribbon startFromScratch="false"> <tabs> <!-- EXCEL BUILT-IN TABS --> <tab idMso="TabDeveloper" getVisible="GetVisible"> <group idMso="GroupCode" visible="true"/> <group idMso="GroupAddins" visible="true"/> <group idMso="GroupControls" visible="true"/> <group idMso="GroupXml" visible="true"/> <group idMso="GroupModify" visible="true"/> </tab> </tabs> </ribbon>
激活特定的选项卡
在Microsoft Office 2010中,通过使用IRibbonUI对象的ActivateTab方法来激活自定义选项卡
对于内置的选项卡使用ActivateTabMso方法,对于多个加载项共享的选项卡使用ActivateTabQ。
ActivateTabQ还需要额外的Stringtypes参数来指定加载项的名称空间
在XML中指定
customUI onLoad="RibbonOnLoad" xmlns=etc
在VBA中
Public gRibbonUI As IRibbonUI Sub RibbonOnLoad(ribbon As IRibbonUI) Set gRibbonUI = ribbon End Sub
然后在代码中
gRibbonUI.ActivateTab "MyTabID" gRibbonUI.ActivateTabMso "TabHome"
首先,打开要隐藏function区选项卡的Excel工作表,然后按Alt + 11 。 在工作表中,您可以编写以下代码:
Private Sub hide() Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False) End sub
尝试这个XML的Excel我已经testing:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab idMso="TabHome" visible="false" /> <tab idMso="TabInsert" visible="false" /> <tab idMso="TabFormulas" visible="false" /> <tab idMso="TabData" visible="false" /> <tab idMso="TabReview" visible="false" /> <tab idMso="TabView" visible="false" /> <tab idMso="TabDeveloper" visible="false" /> </tabs> </ribbon> </customUI>
结果: