Не удается запустить макрос Visio с помощью Python - PullRequest
1 голос
/ 12 марта 2019

Я пытаюсь запустить макрос Visio с помощью Python.Я получил это до сих пор, который не работает, я получаю ошибку: 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

Есть идеи?

1 Ответ

2 голосов
/ 13 марта 2019

В Visio объект Application не имеет метода Run, но есть метод ExecuteLine в документе.

Так что, если в вашем документе Visio была процедура VBAвот так:

    Public Sub SayHello(ByVal name As String)
        MsgBox "Hello " & name & "!", vbOKOnly
    End Sub

тогда будет работать следующий Python:

doc.ExecuteLine('ThisDocument.SayHello "Bob"')
...