Python将宏注入Microsoft Word对象

2024-10-02 20:40:10 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题我已经有好一阵子没办法解决了。我检查了文档,检查了所有内容,但似乎找不到如何注入宏。 这是我目前的代码:

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的类型,所以我不知道任何帮助


Tags: instance代码from文档clientadd内容win32com
1条回答
网友
1楼 · 发布于 2024-10-02 20:40:10

我不是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"

此处的有用参考:http://www.cpearson.com/excel/vbe.aspx

相关问题 更多 >