[英]MS Office Automation: Get notified (Event) when a macro runs
我正在使用 C#/.NET 开发一个 MS Office(Excel、Word、PowerPoint 和 Outlook)加载项,它会跟踪和记录一些发生在 DocumentOpen、DocumentContentChange 等事件时的事件。但是,经过几天的搜索,我当在 Excel 工作簿、Word 文档等上运行宏时,我无法找到一种方法(事件)来获得通知
困难的方法是尝试捕获用户可以遵循的所有可能路径来运行宏,使用鼠标和键盘挂钩 Win API,它们是:
按组合键:例如,宏有一个与之关联的 Ctrl+F8 键。
单击一个形状(主要是 excel):检查该形状是否附加了宏。
我可以看到这些方法非常有限。
你有更好的建议吗?
我这样做的方法是在运行宏时将数据存储在数据库的表中。 这样代码就在宏中,你可以确定如果宏运行,数据将在数据库中。
请查看“应用程序和服务日志”(与“Windows 日志”分开)下记录的事件,然后查看“Microsoft Office 警报”。
有不同类型的警报,包括与宏相关的警报 - 也许您会在那里找到您要查找的信息。
请让我们知道结果。 这不是很好记录的事件存储。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.