Как избавиться от ошибки com_error при запуске макроса MS-word с python?

#python #ms-word #macros #win32com

Вопрос:

Я пытаюсь запустить макрос MS-word VBA с python, но продолжаю получать сообщение об ошибке.

 import win32com.client as win32

WrdApp = win32.GetActiveObject("Word.Application")

#Call current file
WrdDoc = WrdApp.ActiveDocument

#Insert Caption
WrdApp.Selection.InsertCaption(Label='number')
#^This line gives the error
 

сообщение об ошибке

 com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Word', 'Command failed', 'wdmain11.chm', 36966, -2146824090), None)
 

Любой, кто знаком с Python и макросом MS-word, может сказать мне, почему я получил эту ошибку?

Ответ №1:

Если вы хотите использовать другие метки, кроме «Уравнение», «Рисунок», «Таблица» или WdCaptionLabelID в метке, вы должны определить новую (см. https://docs.microsoft.com/en-us/office/vba/api/word.selection.insertcaption, https://docs.microsoft.com/en-us/office/vba/api/word.captionlabels):

 import win32com.client as win32

WrdApp = win32.GetActiveObject("Word.Application")

# Call current file
WrdDoc = WrdApp.ActiveDocument

cLabel = "number"
# define new label
WrdApp.CaptionLabels.Add(Name=cLabel)
# Insert Caption
WrdApp.Selection.InsertCaption(Label=cLabel)
# no error