【发布时间】:2015-07-18 11:03:40
【问题描述】:
我目前在一些视觉基础知识方面存在问题。我已使用以下代码成功地将形状添加到当前的 Powerpoint 幻灯片中:
dim pres as Microsoft.Office.Interop.Powerpoint
dim slide as pres.ActivePresentation.Slides(1)
With slide.Shapes.AddShape(Type:=Microsoft.Office.Core.MsoAutoShapeType.msoShapeActionButtonCustom, Left:=50, Top:= 50, Width:=70, Height:=30)
.Name="Test"
End With
所以我现在要做的是该函数,无论何时(在演示模式下)单击它时,它都应该调用在同一类中定义的名为“test()”的 Sub。我做不到。我现在能做的就是使用以下代码从演示文稿中调用一个宏:
dim pres as Microsoft.Office.Interop.Powerpoint
dim slide as pres.ActivePresentation.Slides(1)
With slide.Shapes.AddShape(Type:=Microsoft.Office.Core.MsoAutoShapeType.msoShapeActionButtonCustom, Left:=50, Top:= 50, Width:=70, Height:=30)
.Name="Test"
With .ActionSettings(PowerPoint.PpMouseActivation.ppMouseClick)
.Run = "test"
.Action = PowerPoint.PpActionType.ppActionRunMacro
End With
End With
但由于我的演示文稿中没有任何宏,这将导致错误。当我在 powerpoint 中使用集成的 Visual Basic 编辑器手动添加宏时,它会按照我的预期工作。
有没有什么方法可以直接从我的 Visual Basic 代码中调用 Sub 而无需创建宏?
我希望我说清楚了,你们理解我的问题。
提前致谢。
【问题讨论】:
标签: vba shape powerpoint