Часто требуется использовать 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 это?