ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 21060|回复: 35

[分享] [Ribbon]打开文件时激活指定的选项卡

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-1-20 20:36 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:UI界面定制
本帖最后由 wpxxsyzx 于 2014-1-20 20:37 编辑

方法一:
使用IRibbonUI对象的ActivateTab
XML代码:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon>
    <tabs>
      <tab id="MyTab" label="我的选项卡" >
        <group id="Group1" label="我的组">
          <button id="MyButton" label="我的按钮" size="large" imageMso="HappyFace"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
VBA代码:
Public objRib As IRibbonUI
Sub RibbonOnLoaded(ribbon As IRibbonUI)
    Set objRib = ribbon
    objRib.ActivateTab "MyTab"
'    objRib.ActivateTabMso "TabInsert"  
End Sub
RibbonOnLoaded过程是XML代码中customUI元素的 onLoad属性的回调过程,返回一个代表功能区的IRibbonUI对象,该过程在应用程序加载功能区时运行,将返回的IRibbonUI对象赋值给变量objRib就可以在VBA中引用功能区了。
IRibbonUI对象的ActivateTab方法可以激活自定义的选项卡,ActivateTabMso方法可以激活指定的内置选项卡,两者语法相同:
对象表达式.ActivateTab(ControlID As String)
参数ControlID用来指定要激活的选项卡,是一个字符串,必须和XML中自定义选项卡的ID属性一致,ActivateTabMso方法的参数ControlID必须是内置选项卡的标识符。

方法二:
使用sendkeys配合加速键
Public objRib As IRibbonUI
'Callback for customUI.onLoad
Sub RibbonOnLoaded(ribbon As IRibbonUI)
   Application.SendKeys "%Y{RETURN}"
'   Application.SendKeys "%N{RETURN}"
End Sub
按下ALT键查看各个选项卡的加速键,把代码中的N,Y换成其他加速键就会激活对应的选项卡

打开文件时激活指定选项卡 2.rar

10.81 KB, 下载次数: 1007

打开文件时激活指定选项卡1.rar

10.64 KB, 下载次数: 1257

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-5-24 15:13 | 显示全部楼层
附件1打开好像没有反应(相应的选项卡没有被打开啊)?

TA的精华主题

TA的得分主题

发表于 2014-5-24 17:03 | 显示全部楼层
老是没有弄明白,XML代码放在哪,怎么打开附件,里面没有xlm中的代码,也可以运行

TA的精华主题

TA的得分主题

发表于 2014-5-30 12:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
VBA万岁 发表于 2014-5-24 15:13
附件1打开好像没有反应(相应的选项卡没有被打开啊)?

附件1自动打开了自定义选项卡“我的选项卡”,没发现问题。

TA的精华主题

TA的得分主题

发表于 2014-5-31 07:48 | 显示全部楼层
dljyh2009 发表于 2014-5-24 17:03
老是没有弄明白,XML代码放在哪,怎么打开附件,里面没有xlm中的代码,也可以运行

xml 这个代码

用xlsm 文件转换一下 将扩展名改为 zip 文件 解压后 新建一个 customUI。xlm 文件放进去

TA的精华主题

TA的得分主题

发表于 2014-6-15 22:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-7-4 20:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-8-1 22:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-12-14 12:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
版主,excel2007是不是不支持第一种方法?
第二种方法好象会影响“NUMLOCK"的状态。请版主指点!
谢谢!

TA的精华主题

TA的得分主题

发表于 2015-6-16 19:35 | 显示全部楼层
是否可以根据判断工作簿是否有没有打开,如果没有打开,使按钮的变灰色不可用呢?这个功能应该更实用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 10:59 , Processed in 0.034134 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表