Как получить доступ к константам c, указанным в приложении, в vba из макроса другого приложения? - PullRequest
0 голосов
/ 16 февраля 2020

Часто требуется использовать VBA в одном приложении MS Office для выполнения действий в другом, например, при наличии макроса Excel, который выполняет вычисления и затем отображает таблицу в powerpoint.

VBA предоставляет полезные псевдонимы для константы в VBA, такие как ppBorderRight = 4. Вы можете стилизовать таблицу в макросе PowerPoint VBA, ссылаясь на имя константы, вместо того, чтобы отслеживать, какое целое значение соответствует чему.

Это работает нормально в макросе powerpoint (файл pptm), но завершается неудачно при вызове из Excel (файл xlsm)

Как вы можете ссылаться на эти константы из другого приложения? У меня есть макрос VBA для Excel, который создает приложение ppt с Set pp = CreateObject("PowerPoint.Application")

Я пытался использовать следующие подходы в своем макросе Excel:

Set pp = CreateObject("PowerPoint.Application")
Set activeSlide = pp.ActivePresentation.Slides(pp.ActivePresentation.Slides.Count)
Set myTable = activeSlide.Shapes.AddTable(8, 2, , , 600, 500).Table

myTable.Columns(4).Cells.Borders(ppBorderRight).Weight = 0 'ppBorderRight evaluates to Empty
myTable.Columns(4).Cells.Borders(pp.ppBorderRight).Weight = 0 'Error: Application object has no property 'ppBorderRight'

Как правильно выполнить sh это?

1 Ответ

0 голосов
/ 16 февраля 2020

Спасибо @Mark за ответ.

Ответ: go Инструменты -> Ссылки в приложении vba (Excel в моем случае) и добавить ссылку на целевое приложение. библиотека объектов (Microsoft PowerPoint 16.0 Object Library в моем случае).

vba screenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...