前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谈谈使用VBA控制PPT

谈谈使用VBA控制PPT

作者头像
fanjy
发布2023-08-30 08:28:55
4220
发布2023-08-30 08:28:55
举报
文章被收录于专栏:完美Excel完美Excel

与Excel一样,我们也可以使用VBA来操控PPT。

如下面的代码:

代码语言:javascript
复制
Sub AddShapeToPPT()
 Dim myShape As Shape
 Set myShape = ActiveWindow.View.Slide.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50)
 
 With myShape.Fill
   .Visible = msoTrue
   .ForeColor.RGB = RGB(255, 0, 0)
   .Transparency = 0
   .Solid
 End With
End Sub

在PowerPoint中运行后,将会在当前幻灯片中生成一个红色的矩形(正方形)。

然而,与Excel不同的是,在PowerPoint中没有宏录制器,因而不能将操作录制成代码。但我们可以借助于Excel的宏录制器,在Excel中录制相关操作的代码,然后稍作修改,将其移植到PowerPoint中。

例如,在Excel中使用宏录制器录制的绘制红色矩形的代码如下:

代码语言:javascript
复制
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50).Select
 With Selection.ShapeRange.Fill
   .Visible = msoTrue
   .ForeColor.RGB = RGB(255, 0, 0)
   .Transparency = 0
   .Solid
 End With

与在PowerPoint中创建红色矩形的代码相对,几乎相同。只是,在Excel中使用ActiveSheet代表引用了当前工作表,而在PowerPoint中使用ActiveWindow.View.Slide代表引用当前幻灯片。

这为我们提供了一种方法,也就是在Excel中录制相关的操作代码,稍作修改后应用到PowerPoint中。

其实,我们可以直接在Excel的VBE中修改代码,用来生成PPT。与上文在PPT中绘制红色矩形一样,下面的示例代码从Excel中打开PPT并在当前幻灯片中绘制一个红 色矩形:

代码语言:javascript
复制
Sub AddShapeToPPT()
 Dim pptApp As PowerPoint.Application
 Set pptApp = New PowerPoint.Application
 Dim pptPres As Object
 Set pptPres = pptApp.Presentations.Add(msoTrue)
 Dim pptSlide As Object
 Set pptSlide = pptPres.Slides.Add(1, ppLayoutTitleOnly)
 
 Dim myShape As Object
 Set myShape = pptApp.ActiveWindow.View.Slide.Shapes. _
 AddShape(msoShapeRectangle, 50, 50, 50, 50)
 With myShape.Fill
   .Visible = msoTrue
   .ForeColor.RGB = RGB(255, 0, 0)
   .Transparency = 0
   .Solid
 End With
End Sub

可以看出,代码段除了声明部分要引用幻灯片用来处理外,下面的大部分代码都相同。注意,在运行上面的代码前,要先引用相应的对象库,即在VBE中,单击菜单“工具——引用”,在“引用”对话框中,找到“Microsoft PowerPoint 16.0 Object Library”并选取其前面的复选框,如下图1所示。

图1

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档