问题标签 [ribbonx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vba - Ribbon.InvalidateControl 不适用于 PPT 2010
我在 PPT 2010 的插入功能区中有一个加载项。基本上我想做的是在组合框中进行选择,然后运行宏,然后将组合框设置为空白。不幸的是,我无法清除选择。
我用各种方法在网上搜索过,没有任何帮助。希望有人可以提供帮助。
我的 XML
VBA代码:
vba - 动态禁用自定义 (VBA) Excel 上下文菜单按钮?
情景
大家好,我将使用此 MSDN 页面上的说明在我的 Excel 工作簿中的单元格上下文菜单(不是功能区)中添加一些自定义控件。我遇到的唯一问题是我需要仅为特定列/单元格范围启用这些项目。
我环顾四周,找不到任何步骤——有一些用于 VSTO 开发(用 C# 编写),但这不是我需要的。我计划使用 Office 中内置的 VBA IDE 编写此代码,也许还可以使用自定义 UI 编辑器编写一些 XML 。
问题
所以基本上,我正在寻找一种在调用上下文菜单时(即右键单击)运行函数的方法,该函数验证选择以确保它位于适当的列中。如果不是,我希望我的自定义按钮显示为灰色。注意:这可能根本无法通过验证功能完成,老实说,我不知道。如果有更好的方法,请随时分享(我愿意接受建议)。
附言
请不要以为我在要求您编写我的代码。创建这些按钮应该非常简单,因为我之前创建了很多(尽管它们都是功能区项目),我希望可以就这个非常具体的问题寻求一些快速帮助。
先感谢您!
dynamics-crm-2011 - Dynamics CRM 2011 RibbonXML - 是/否字段的 ValueRule
我正在尝试<ValueRule>
在 RibbonXML 中为两个选项(是/否)字段创建一个,用于在<DisplayRule>
条件为真时应显示按钮的。但是,我无法让它按我想要的方式工作。
<ValueRule Field="somefield" Value="(what do I put here to represent "yes"?)" />
我尝试过使用1
,true
和Yes
其他大小写变体,但无论我输入什么,规则评估为 false 并且按钮被隐藏。我怎样才能让它工作?
vba - Excel 自定义功能区按钮调用其他功能区按钮的子例程
如果我设置了一个子程序以便可以从客户功能区按钮调用它,是否仍然可以从其他子程序调用这些子程序?我收到的参数不是可选的错误消息,但我不确定要传递给子程序的参数是什么,因为我不是从功能区按钮而是从另一个子程序本身内部调用的。
谢谢您的帮助。
excel - 为什么 RibbonMenu 嵌套限制为 5 级?我怎样才能覆盖它?
在 Excel 2010 插件中,我们以编程方式使用数据库中的项目填充多级RibbonMenu。但是,似乎不可能显示超过五个级别的RibbonMenu 。(一些)客户端得到一个运行时异常,指出最多只支持 5 个嵌套级别(逐字:“Maximal 5 geschachtelte Menüs sind zulässig.”)。关闭对话窗口后,菜单显示并且可以正常工作,但是任何深度超过五级的菜单项都丢失了,并且级别 <= 5 上的某些项目被禁用(例如,RibbonMenus 缺少它们的 level-5-RibbonButtons)。
菜单是在代码中(使用 C#)还是以声明方式(XML)创建的并不重要。
- 为什么有嵌套限制?它是否记录在某处?
- 我们能做些什么来超越这个限制吗?消息中的数字“5”看起来很可疑,就像在某处设置了一些神奇的 int 值......
- 是否有任何其他控件可用于在 Excel 功能区中显示多级嵌套菜单?
谢谢和最好的问候,
托马斯
vsto - 如何创建 ContextMenuListRange VSTO c# 的上下文菜单
我想在 VSTO 中创建一个 ContextMenuListRange,我已经为 ContextMenuCell 创建了另一个 xml。如果我在另一个标签中添加列表范围,功能区会说“对象引用未设置为对象的实例。这是 xml 标签
xml - 刷新 Excel CustomUI 功能区下拉菜单不在工作簿上打开
我希望有人对此有所了解...我了解如何根据单元格将 Excel CustomUI 功能区下拉列表更新为默认值...以下方法完美运行,但以下引用的单元格“AX6”可以更新通过用户表单。我希望功能区下拉刷新/更新并反映在用户表单中选择的内容(用户表单只会使用反映 XML 代码中下拉列表的值更新单元格“AX6”)......是否有可能调用下面的 VB 子和功能区下拉更新?我似乎无法找到一种方法来调用带有“控件作为 IRibbonControl”的子而不出错,而且我不确定子语句中声明的变量是否会引发另一个扳手...对此有任何帮助非常感激!!
XML:
VB:
mocking - 将 Microsoft Fakes Framework 与基于 XML 的功能区的 VSTO 应用程序级外接程序一起使用
我有一个在 Excel 中运行的“应用程序级”VSTO 加载项(与“文档级”相对)。加载项运行良好。我使用的是 Ribbon XML 选项,而不是 Ribbon 设计器。这样做,您最终会得到一个从 Office.IRibbonExtensibility 派生的 Ribbon 类,它具有各种方法,例如:
等等
现在,当我创建一个单元测试项目时,添加对我的加载项的引用,然后从引用下的右键菜单中选择“添加假程序集”,我得到一个错误。
我不相信它与我的项目有任何关系,因为我验证了示例加载项代码也会发生同样的事情,例如这个项目: http: //www.codeproject.com/Articles/296288/Excel-Add -in-for-Exporting-Excel-data-to-XML
为了重现,我下载了该插件: 1. 在 Visual Studio 2010/2012/2013 中打开它 2. 在同一解决方案中创建一个单元测试项目。3. 将加载项项目作为解决方案级引用添加到单元测试项目。在这个特定的示例中,它被称为“ExcelExportXML”。4.然后在Unit Test项目中展开References树,右键点击插件引用,即ExcelExportXML,选择“Add Fake Assembly”。这要求您至少拥有高级版的 Visual Studio。专业版不够用。
您最终会遇到如下错误:
最好重复上述步骤来重现问题 - 只需几分钟。
我的要求是这样的。有没有办法在不切换到另一个模拟/隔离器框架的情况下完成这项工作。我真的想避免任何人建议我不要使用“Microsoft Fakes Framework”,因为这真的没有用处,除非您绝对肯定没有办法让这两种 Microsoft 技术有效地协同工作。
我已经尝试在 .fakes 文件中使用各种组合。这是我到目前为止所尝试的:
我花了大约半天的时间研究这个。任何帮助(除了将组件拆分为 VSTO 和非 VSTO 部分)将不胜感激。
excel-2010 - 将工具提示添加到 Excel 加载项自定义功能区 UI XML
我正在创建一个具有自定义功能区 UI 的 Excel 加载项。我想为我的按钮添加一个工具提示。我可以使用哪些 XML 属性来设置它?
vba - PowerPoint 加载项丢失 RibbonUI
我一直在努力找出分布在大约 40 个最终用户中的 PPT 插件中的错误原因。
问题:功能区状态丢失/功能区UI 对象丢失。
对于某些用户,最终Rib
对象变为Nothing
.
用户向我保证,他们没有收到任何运行时错误或脚本错误(来自我们也通过此加载项调用的 COM 对象)。未处理的错误,如果用户点击End
会导致状态丢失。
没有一个用户能够可靠地重现导致观察到的故障的场景。这使得故障排除非常困难。我希望不希望有一些明显的东西我错过了,或者我没有预料到。
我目前如何处理丢失或 RibbonUI
为了解决这个问题,我将指向功能区的对象指针存储在三个地方,这对我来说似乎有点矫枉过正,但显然还不够:
- 一个被调用的类对象
cbRibbon
有一个.RibbonUI
被赋值的属性;Set cbRibbon.RibbonUI = Rib
在功能区的onLoad
回调过程中。所以我们有一个byRef
对象本身的副本。如果丝带什么都不是,理论上我可以Set rib = cbRibbon.RibbonUI
,除非cbRibbon
对象也超出范围,否则这可行。 - 该
cbRibbon
对象具有.Pointer
分配的属性:cbRibbon.Pointer = ObjPtr(Rib)
。 - 一个
CustomDocumentProperty
名为“RibbonPointer”的指针也用于存储对对象指针的引用。(注意:这甚至在状态丢失之后仍然存在)
因此,您可以看到我已经对此进行了一些思考,试图复制存储此指针的方式,就像将其存储在 Excel 中的隐藏工作表/范围中一样。
附加信息
我可以从强大的客户端日志记录中看到,此错误似乎通常发生但并非总是在以下过程中发生,该过程用于刷新/使功能区及其控件无效。
每当我需要动态刷新功能区或其部分控件时,都会调用此过程:
该错误似乎(有时,我不能强调这一点:该错误不能按需复制)发生在完全刷新期间,称为:
这是进行失效的过程:
如您所见,我在此过程中做的第一件事是测试Rib
对象的Nothing
-ness。如果计算结果为True
,则 RibbonUI 对象以某种方式丢失。
然后错误函数尝试重新实例化功能区:首先来自cbRibbon.RibbonUI
,然后来自cbRibbon.Pointer
,如果两者都失败,则来自CustomDocumentProperties("RibbonPointer")
值。如果这些都没有成功,那么我们会显示一个致命错误,并提示用户关闭 PowerPoint 应用程序。如果其中任何一项成功,则功能区将以编程方式重新加载,一切都会继续工作。
这是该过程的代码。请注意,它调用了我没有包含代码的其他几个过程。这些是辅助函数或记录器函数。该.GetPointer
方法实际上调用 WinAPICopyMemory
函数以从其指针值重新加载对象。
所有这些在理论上都非常有效,实际上我可以直接终止运行时(通过调用End
语句或其他方式),并且这些过程按预期重置功能区。
那么,我错过了什么?