python - Python 将宏注入 Microsoft Word 对象
问题描述
我已经有这个问题很长一段时间了,根本无法弄清楚。我检查了文档检查了所有内容,但似乎找不到如何注入宏。这是我当前的代码:
from win32com.client import Dispatch
instance = Dispatch("Word.Application")
instance.Visible = False
objdoc = instance.Documents.Open(docpath)
macro = objdoc.VBProject.VBComponents.Add(1)
macro.CodeModule.AddFromString(macrocode)
objdoc.SaveAs(pathtosave)
instance.Quit()
现在关键是objdoc.VBProject.VBComponents.Add(1)
添加宏,我检查types
了它的所有内容,没有对应的类型Microsoft Word Objects
,所以我一无所知任何帮助表示赞赏!
解决方案
我不是 Python 程序员,但这里是 VBA 版本:
Dim objdoc As Document, module
Set objdoc = ThisDocument
'get existing code module
Set macro = objdoc.VBProject.VBComponents("ThisDocument").CodeModule
macro.addfromstring "Sub Hello()" & vbCrLf & _
"Msgbox(""OK"")" & vbCrLf & _
"End Sub"
推荐阅读
- snowflake-cloud-data-platform - 雪花更改列以具有默认值
- maven - “mvn verify”与“mvn test”有什么区别?
- reactjs - 使用 shopify 验证外部 create-react-app 自定义应用程序
- javascript - 在 Angular 中使用真实路径:找不到模块
- javascript - 在不打开窗口的情况下加载页面
- typescript - 图像源(远程 URL 或本地文件资源)
- python - 如何使用 pandas / geopandas 增加我的地块的箱数?
- android - 在 WebView 和 HTTP 请求之间共享 cookie
- django-rest-framework - Djangorestframework,我如何使用带有自定义字段的序列化程序,我想为创建方法传递这些字段?
- java - 收到此错误没有找到类 org.json.JSONObject 的序列化程序,也没有发现用于创建 BeanSerializer 的属性