无法使用 python 运行 visio 宏
Cannot run visio macro using python
我正在尝试 运行 使用 python 的 visio 宏。到目前为止我得到了这个不起作用我收到错误消息:AttributeError: <unknown>.Run
调用 doc.Application.Run
时
if os.path.exists("Drawing1.vsdm"):
visio = win32com.client.Dispatch("Visio.Application")
visio.Visible = 1
doc = visio.Documents.Open("Drawing1.vsdm")
doc.Application.Run("Drawing1.vsdm!test.Read_text_File")
我见过一些例子,人们用这种方式 运行宁 excel 宏
if os.path.exists("excelsheet.xlsm"):
xl=win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(os.path.abspath("excelsheet.xlsm"))
xl.Application.Run("excelsheet.xlsm!modulename.macroname")
xl.Application.Save()
xl.Application.Quit()
del xl
有什么想法吗?
在 Visio 中,Application 对象没有 Run
方法,但 Document 中有一个 ExecuteLine
方法。
因此,如果您的 Visio 文档有这样一个 VBA 过程:
Public Sub SayHello(ByVal name As String)
MsgBox "Hello " & name & "!", vbOKOnly
End Sub
那么下面的 Python 就可以了:
doc.ExecuteLine('ThisDocument.SayHello "Bob"')
我正在尝试 运行 使用 python 的 visio 宏。到目前为止我得到了这个不起作用我收到错误消息:AttributeError: <unknown>.Run
调用 doc.Application.Run
if os.path.exists("Drawing1.vsdm"):
visio = win32com.client.Dispatch("Visio.Application")
visio.Visible = 1
doc = visio.Documents.Open("Drawing1.vsdm")
doc.Application.Run("Drawing1.vsdm!test.Read_text_File")
我见过一些例子,人们用这种方式 运行宁 excel 宏
if os.path.exists("excelsheet.xlsm"):
xl=win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(os.path.abspath("excelsheet.xlsm"))
xl.Application.Run("excelsheet.xlsm!modulename.macroname")
xl.Application.Save()
xl.Application.Quit()
del xl
有什么想法吗?
在 Visio 中,Application 对象没有 Run
方法,但 Document 中有一个 ExecuteLine
方法。
因此,如果您的 Visio 文档有这样一个 VBA 过程:
Public Sub SayHello(ByVal name As String)
MsgBox "Hello " & name & "!", vbOKOnly
End Sub
那么下面的 Python 就可以了:
doc.ExecuteLine('ThisDocument.SayHello "Bob"')