ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] Ribbon从VBA迁移到VSTO的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-8 14:29 | 显示全部楼层 |阅读模式
本帖最后由 tswing 于 2018-4-9 08:33 编辑

我在VBA中做的一个Ribbon,是达到预期效果的,但是迁移到VSTO后(成为 xml方式的 Ribbon)出现的问题无法解决:


因为出于控制目的,功能区选项卡、控件的可见性或可用性要进行控制,在 VBA中是定义了一个全局 IRibbonUI型变量 myRibbonUI ,在功能区装载中赋值,如下,


Sub RibbonUI_onLoad(ribbon As IRibbonUI)
    Set myRibbonUI = ribbon
End Sub



然后在工作簿事件中就可以调用 myRibbonUI 对功能区的属性或状态进行控制。


但是,迁移到 VSTO后这种方法失效了,根本不起作用。因为是新手,也不知道其它方法。请各位老师赐教,谢谢。


一个例子: test.zip (211.54 KB, 下载次数: 28)

TA的精华主题

TA的得分主题

发表于 2018-4-8 14:57 | 显示全部楼层
你用可视化功能区的方式去弄,每个按钮都是对象,对象就可以隐藏啦,XML方法貌似不行,我也试了好久,
下面是我搞的一个例子,半成品
123.gif

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-8 15:07 | 显示全部楼层
tongkj 发表于 2018-4-8 14:57
你用可视化功能区的方式去弄,每个按钮都是对象,对象就可以隐藏啦,XML方法貌似不行,我也试了好久,
下 ...

谢谢帮助,看样子只能修改代码了,原来想偷懒下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-8 19:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 tswing 于 2018-4-9 08:33 编辑

用了可视化的ribbbon,怎么还是不能控制功能区的可视性呢?

比如附件,功能区一直都可视,不能关闭。


test.zip (218.85 KB, 下载次数: 35)


请老师赐教,不胜感激!

================================================

自己研究了会,原来只要把 Tab类型改为自定义型就可以控制功能区可见性了。

TA的精华主题

TA的得分主题

发表于 2018-4-9 21:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
tswing 发表于 2018-4-8 19:16
用了可视化的ribbbon,怎么还是不能控制功能区的可视性呢?

比如附件,功能区一直都可视,不能关闭。

你的版本太高,我看不了,具体给你一段代码参考
  1. Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load
  2.         ''''验证码错误时,软件折叠
  3.         Try
  4.             Me.PreCalGroup.Visible = False
  5.             Me.MainCalGroup.Visible = False
  6.             Me.ToolsGroup.Visible = False
  7.             'Me.UserLoadInBut.Visible = True
  8.             Me.GetHelpGroup.Visible = True            
  9.             ''''重要参数赋值,需更改Keyok
  10.             nn = 0
  11.             KeyOK = False
  12.         Catch ex As Exception
  13.             MsgBox("异常错误,请联系作者", vbOKOnly, "ResX1.0")
  14.         End Try
  15.         'Me.FormPrepare.Enabled = False
  16.         'Me.CumCal.Enabled = False
  17.     End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2018-4-9 21:07 | 显示全部楼层
自己研究了会,原来只要把 Tab类型改为自定义型就可以控制功能区可见性了。
是XML格式还是可视化功能区

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-10 08:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
tongkj 发表于 2018-4-9 21:07
自己研究了会,原来只要把 Tab类型改为自定义型就可以控制功能区可见性了。
是XML格式还是可视化功能区

哈哈,是可视化的解决了,谢谢老师。XML的本身就是自定义的,但是在功能区外部调用时,我没办法(也许是没学到)将它实例化,所以失败。

TA的精华主题

TA的得分主题

发表于 2018-4-10 14:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
tswing 发表于 2018-4-10 08:25
哈哈,是可视化的解决了,谢谢老师。XML的本身就是自定义的,但是在功能区外部调用时,我没办法(也许是 ...

你用XML格式做的插件,能否自动隐藏,还是和我一样直接可视化生成后,在用代码隐藏,求分享,交流

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-10 15:33 | 显示全部楼层
tongkj 发表于 2018-4-10 14:36
你用XML格式做的插件,能否自动隐藏,还是和我一样直接可视化生成后,在用代码隐藏,求分享,交流

是啊,现在只能用可视化生成的,不过,能实现可见性、可用性,已经达到我的要求;不再考虑 XML格式的。

TA的精华主题

TA的得分主题

发表于 2019-12-2 09:24 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-4 01:17 , Processed in 0.056424 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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