與Excel一樣,我們也可以使用VBA來操控PPT。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中使用宏錄制器錄制的繪制紅色矩形的代碼如下: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并在當前幻燈片中繪制一個紅 色矩形: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所示。歡迎在下面留言,完善本文內容,讓更多的人學到更完美的知識。
歡迎到知識星球:完美Excel社群,進行技術交流和提問,獲取更多電子資料,并通過社群加入專門的微信討論群,更方便交流。