Excel からいくつかのグラフをコピーし、作成済みの PowerPoint プレゼンテーションの別のスライドに貼り付ける VBA マクロを作成したいと考えています (PPT は開いていません。コードでそれができるはずです)。
私はそれを試みましたが、「ActiveXコンポーネントが存在しません」などのエラーが常に発生します。この問題に対する多くの解決策も読みましたが、それらはすべて面倒すぎるようです。誰かがそれを行うための明確でクリーンな方法を提案できますか? とても参考になります!
マクロは Excel になります。以下のコードを見つけてください。
Sub ExcelToPres()
Dim PPT As Object
Set PPT = CreateObject("PowerPoint.Application")
PPT.Visible = True
PPT.Presentations.Open Filename:="path"
copy_chart "sheet_name", 2 ' Name of the sheet to copy graph and slide number the graph is to be pasted in
PPT.Save
PPT.Close
End Sub
Public Function copy_chart(sheet, slide)
Dim PPApp As Object
Dim PPPres As Object
Dim PPSlide As Object
Set PPApp = CreateObject("Powerpoint.Application")
***Set PPPres = CreateObject("Powerpoint.Presentation")***
Set PPSlide = CreateObject("Powerpoint.Slide")
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewSlide
PPApp.ActiveWindow.View.GotoSlide (slide)
Worksheets(sheet).Activate
ActiveSheet.ChartObjects("Chart 1").Chart.CopyPicture _
Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
'PPApp.ActiveWindow.View.GotoSlide PPSlide.SlideIndex
Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
With PPSlide
' paste and select the chart picture
.Shapes.Paste.Select
' align the chart
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
End With
' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
End Function
強調表示された行にエラーが表示されます:「 ActiveX コンポーネントはオブジェクトを作成できません」 ありがとう!!