2009-06-29 83 views
1

在Excel 2007之前,我们使用vba捕获Excel中的打开文件事件,以便我们可以显示我们自己的打开对话框,该对话框知道如何查找客户端文件夹。在Excel 2007中这不再有效,现在有没有人有任何想法>Excel 2007 - 捕获打开命令栏按钮事件

之前的基本前提是创建一个带有命令栏按钮和相关事件的类,然后在应用程序打开时设置该commandBarButton,会抓住它,但现在没有。现在有另一种方法吗?

公共WITHEVENTS cmdBold作为Office.CommandBarButton 私人小组cmdBold_Click(BYVAL Ctrl键Office.CommandBarButton,_ CancelDefault由于布尔) “插入代码要在针对这一事件上运行。 结束小组

http://msdn.microsoft.com/en-us/library/aa189726(office.10).aspx

回答

1

没有真正达到与2007年加快了,但是我认为,改变Ribbon UI的已经改变了您的应用程序的工作。

从“开发人员注意事项”的this lengthy MSDN article部分:

原有解决方案和定制兼容性

许多公司依靠定制的微软 Office系统上 应用程序和解决方案, 将Microsoft Office与 第三方应用程序集成。这些解决方案中的很多都通过命令栏对象模型修改Office UI 。 在2007 Office版本中,此代码 继续工作 - 在大多数情况下不需要修改即可使用 。

在Office 2003到工具栏进行的变更通常出现在 功能区(见图18)的加载项选项卡上的2007 释放。出现的 定制类型取决于 加载项的原始设计。例如,对于 示例,如果自定义将 项添加到上一个菜单结构 ,则Office Fluent UI会创建菜单 命令组。如果自定义代码 将项目添加到内置工具栏 ,则Office Fluent UI会创建一个工具栏 包含这些 控件的命令组。通过加载项 添加的工具栏显示在自定义工具栏组中。

鼠标点击和该 加载项选项卡上的其他事件引发了同样的结果 如前面的菜单和工具栏 接口。在 中单击工具栏按钮时执行 的外接程序代码在 用户单击2007版本的 加载项选项卡的工具栏组中的对应 按钮时,仍会执行上一个UI。

要求隐藏菜单和工具栏或 以删除控件将被忽略。如果 的加载项尝试重新调整 内置的功能,通过改变菜单项或工具栏 按钮,如保存或打印 预览,Office应用程序副本 控制的加载项选项卡和 行为 在那里更改它,保留功能区上的原始 控件或未更改Office按钮菜单中的微软 控件。

虽然可以删除或 禁用内置控件 编程在2007年发布, 加载项删除或重新排序菜单 项目,在以前的Microsoft Office 版本的工具栏项目没有 效果当他们被装载时。

因此,您可能会发现在“加载项”选项卡中有一个额外的“打开”控件。

似乎重新使用内置控件只能使用XML。从早期在同一文件中:

机会扩展

重新为内置控件。您可以通过编写一行将定制代码连接到内置控件的每个实例的XML来接管UI中任何位置的任何内置控件的功能。您可以修改该控件以执行自定义代码,并可选择继续使用内置功能。

最后,this even longer MSDN article解释XML定制是如何工作的

+0

听起来不错,会检查尝试了这一点,TKS! – Codezy 2009-07-01 16:46:25