Как передать коллекцию в макрос VBA и заполнить ее - PullRequest
0 голосов
/ 09 января 2019

У меня есть программа на Python, которая обрабатывает файл Excel. В файле Excel у меня есть макрос, который принимает коллекцию в качестве одного из параметров.

Как создать коллекцию VBA в python и как извлечь из нее значения? В этом случае я использую коллекцию для регистрации, поэтому элементы в коллекции - это строки, которые, похоже, автоматически обрабатываются pythoncom.

Код VBA:

Public Function Import( _
    path As String, _
    report As Collection _
) As Boolean
...
End Function

Код Python:

clsid = "Excel.Application"
ret = pythoncom.CoCreateInstanceEx(
    clsid,
    None,
    pythoncom.CLSCTX_SERVER,
    None,
    (pythoncom.IID_IDispatch,)
)
clsid = ret[0]
xlapp = gencache.EnsureDispatch(clsid)
wb = xlapp.Workbooks.Open(
    Filename="file.xlsm",
    ReadOnly=True,
)
ret = xlapp.Run(
    Macro="ImportWHL.Import",
    Arg1="path",
    Arg2=report,
)

Итак, как мне создать переменную "report" в приведенном выше примере?

...