excelperfect Q:我在Excel工作表中包含有1張圖片,名稱是默認的“圖片 1”,我怎樣編寫VBA代碼來打開一個已存在的PPT文件,先刪除該PPT中所有的圖片,然后將“圖片 1”復制并粘貼到該PPT的第2張幻燈片中。 A:首先,添加對“MicrosoftPowerPoint XX.0 Object Library”庫的引用,如下圖1所示。 圖1 然后,輸入如下代碼: Sub PPT_Autom() Dim ObjPPT As PowerPoint.Application Dim oPresentation AsPowerPoint.Presentation Dim oSlide As PowerPoint.Slide Dim oShape As PowerPoint.Shape Dim i As Long Dim opath As String opath = 'E:\問與答115\exceltoppt.pptx' Set ObjPPT = New PowerPoint.Application ObjPPT.Visible = msoCTrue Set oPresentation =ObjPPT.Presentations.Open(opath, msoCTrue) '刪除PPT中的所有圖片 For Each oSlide In oPresentation.Slides For i = oSlide.Shapes.Count To 1 Step-1 Set oShape = oSlide.Shapes(i) If oShape.Type = msoPicture Then oShape.Delete Next i Next oSlide Sheet1.Shapes('圖片 1').Copy ObjPPT.Activate ObjPPT.ActiveWindow.View.GotoSlide (2) ObjPPT.ActivePresentation.Slides(2).Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select With ObjPPT.ActiveWindow.Selection.ShapeRange .LockAspectRatio = False .Left = 50 .Top = 50 .LockAspectRatio = False .Height = 300 .Width = 300 End With Set oSlide = Nothing Set oPresentation = Nothing End Sub 小結: Excel與其他Office應用程序(例如Word、PowerPoint)相交互是常見的應用,因為他們都屬于Office家族,因此很方便整合。 注:今天的這個問題來源于mrexcel.com論壇,略有修改,供有興趣的朋友學習參考。 |
|
來自: hercules028 > 《VBA》