将ActiveX控件插入Powerpoint幻灯片

时间:2017-07-07 10:37:42

标签: vba powerpoint activex powerpoint-vba

我想将自定义ActiveX控件插入到Powerpoint幻灯片中。我已经创建了自定义控件并对其进行了注册,并测试了它的工作原理。我可以轻松地将自定义控件添加到UserForm,但无法将其直接添加到幻灯片中(根据Developer Tab - > Controls下的其他控件)。

是否可以直接将自定义ActiveX控件添加到幻灯片?

如果没有,是否可以将UserForm直接嵌入到幻灯片中?

谢谢!

1 个答案:

答案 0 :(得分:0)

我有点猜测,但是值得一试。当您注册ActiveX控件时,我假设您分配了一个程序ID,对吗?如果这样做,则可以将其作为形状对象添加到指定的幻灯片中。 添加形状时,可以添加特定类型的形状,包括OLEObject。

例如,在下面的代码中,我将使用PowerPoint VBA在Active Presentation中的幻灯片1中添加一个ActiveX ComboBox控件。需要注意的关键是ProgID标识要插入的对象。

Sub ActiveXControlAdd()

'Declare your variables.
Dim PPTPres As Presentation
Dim PPTSld As Slide
Dim PPTShp As Shape

'Grab the slide you want it on.
Set PPTPres = ActivePresentation
Set PPTSld = PPTPres.Slides(1)

'Add a shape, but make sure it's an OLEObject. Also, CLASSNAME is the ProgID!
Set PPTShp = PPTSld.Shapes.AddOLEObject(Left:=100, Top:=100, Width:=150, Height:=50, ClassName:="Forms.ComboBox.1")

'Print it out to make sure.
Debug.Print PPTShp.OLEFormat.ProgID

End Sub

尝试一下,看看是否可以解决问题。