C# MS Office Automation:运行宏时收到通知(事件)
我正在使用C#/.NET开发一个MS Office(Excel、Word、PowerPoint和Outlook)外接程序,它跟踪并记录一些事件,如DocumentOpen、DocumentContentChange等。但是,经过几天的搜索,我无法找到在Excel工作簿Word Document上运行宏时获得通知的方法(事件)。。等 困难的方法是使用鼠标和键盘挂钩Win API,尝试捕捉用户运行宏时可能遵循的所有路径,这些路径包括:C# MS Office Automation:运行宏时收到通知(事件),c#,excel,vba,ms-word,vsto,C#,Excel,Vba,Ms Word,Vsto,我正在使用C#/.NET开发一个MS Office(Excel、Word、PowerPoint和Outlook)外接程序,它跟踪并记录一些事件,如DocumentOpen、DocumentContentChange等。但是,经过几天的搜索,我无法找到在Excel工作簿Word Document上运行宏时获得通知的方法(事件)。。等 困难的方法是使用鼠标和键盘挂钩Win API,尝试捕捉用户运行宏时可能遵循的所有路径,这些路径包括: 使用“宏”对话框(使用纯Win API访问窗口):OnClick
您有更好的建议吗?我这样做的方式是在运行宏时将数据存储在数据库的表中。这样,代码就在宏中,您可以确保如果宏运行,数据将在数据库中。您考虑过事件过程吗?它们会自动运行,也可能会通过代码触发其他宏,因此我认为不可能真正检测到哪个宏在何时运行……您是否可以分享您需要访问调用堆栈的原因?如果你以某种方式获得了这些信息,你将如何处理这些信息?别担心vba4all,这不是什么黑客行为!正如我所说,这是一个面向客户的Office COM插件,几周后,我们决定跳过此功能,专注于其他功能。。谢谢你的评论。我不确定你是否真的理解我的问题!阅读你的答案,你假设我是宏的创造者,事实并非如此。宏可以位于任何文档中,我甚至不需要编辑这些宏,只在其中一个宏运行时收到通知。。那我需要它的名字。