如何从不同应用程序中的宏访问 vba 中的应用程序特定常量?
How do you access application-specific constants in vba from a macro in a different application?
通常需要在一个 MS Office 应用程序中使用 VBA 才能在另一个应用程序中执行操作,例如,使用 excel 宏执行计算然后呈现 table在幻灯片中。
VBA 为 VBA 中的常量提供有用的别名,例如 ppBorderRight
= 4。您可以在 powerpoint VBA 宏中设置 table 的样式通过引用常量名称而不需要跟踪哪个整数值对应于什么。
这在 powerpoint 宏(pptm 文件)中工作正常,但在从 excel(xlsm 文件)
调用时失败
如何从另一个应用程序引用这些常量?我有一个 excel VBA 宏,它使用 Set pp = CreateObject("PowerPoint.Application")
创建一个 ppt 应用程序
我在 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'
完成此任务的正确方法是什么?
感谢@Mark 的回答。
答案是转到 vba 应用程序中的工具 -> 引用(在我的例子中是 Excel
),并添加对目标应用程序对象库的引用(Microsoft PowerPoint 16.0 Object Library
在我的例子中)。
通常需要在一个 MS Office 应用程序中使用 VBA 才能在另一个应用程序中执行操作,例如,使用 excel 宏执行计算然后呈现 table在幻灯片中。
VBA 为 VBA 中的常量提供有用的别名,例如 ppBorderRight
= 4。您可以在 powerpoint VBA 宏中设置 table 的样式通过引用常量名称而不需要跟踪哪个整数值对应于什么。
这在 powerpoint 宏(pptm 文件)中工作正常,但在从 excel(xlsm 文件)
调用时失败如何从另一个应用程序引用这些常量?我有一个 excel VBA 宏,它使用 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'
完成此任务的正确方法是什么?
感谢@Mark 的回答。
答案是转到 vba 应用程序中的工具 -> 引用(在我的例子中是 Excel
),并添加对目标应用程序对象库的引用(Microsoft PowerPoint 16.0 Object Library
在我的例子中)。