将 ActiveX 控件插入到 Powerpoint 幻灯片中

Posted

技术标签:

【中文标题】将 ActiveX 控件插入到 Powerpoint 幻灯片中【英文标题】:Insert ActiveX Control Into Powerpoint slide 【发布时间】:2017-12-11 15:05:52 【问题描述】:

我想在 Powerpoint 幻灯片中插入一个自定义 ActiveX 控件。我已经创建了自定义控件并注册了它,并测试了它是否有效。我可以轻松地将自定义控件添加到用户窗体,但不能将其直接添加到幻灯片中(根据开发人员选项卡 -> 控件下的其他控件)。

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

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

谢谢!

【问题讨论】:

您是否尝试从Developer --> More Controls --> register custom添加控件? 试过了。以这种方式注册控件时不会出现错误,但注册后仍然无法从“更多控件”菜单中使用它。 看来,您必须提供有关您的自定义控件的更多详细信息,例如:它是什么类型的控件,您使用什么工具来创建和注册它。我建议阅读这个:Using a VS2008 Custom Control in VBA (NOT VB) 和这个:Adding Custom Controls to the Control Toolbox 【参考方案1】:

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

例如,在下面的代码中,我使用 PowerPoint VBA 将 ActiveX 组合框控件添加到活动演示文稿中的幻灯片 1。需要注意的关键是 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

试一试,看看能否解决问题。

【讨论】:

以上是关于将 ActiveX 控件插入到 Powerpoint 幻灯片中的主要内容,如果未能解决你的问题,请参考以下文章

Excel 2010 中的“表单控件”和“ActiveX 控件”有啥区别?

双击ActiveX控件时如何禁用Visual Basic对话框

如何将 MFC ActiveX 控件添加到现有的 activex 项目

ActiveX控件之ActiveXObject is not defined

将控件(ActiveX或非ActiveX)添加到图表(Excel VBA)

如何将 ActiveX 控件挂钩到事件/更改到我的视图模型中?