且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用VBA将Excel图表粘贴到Powerpoint中

更新时间:2023-02-14 10:08:16

鉴于我没有您的文件位置,我已经附上了一个例程,

Given I dont have your file locations to work with I have attached a routine below that


  1. 创建了一个新的PowerPoint实例(后期绑定,因此需要为ppViewSlide等定义常量)

  2. 通过每个图表循环

  3. 添加新幻灯片

  4. 粘贴每个图表,然后重复

  1. Created a new instance of PowerPoint (late binding, hence the need to define constants for ppViewSlide etc)
  2. Loops through each chart in a sheet called Chart1 (as per your example)
  3. Adds a new slide
  4. Pastes each chart, then repeats

您需要在导出大小之前格式化每张图表,还是更改默认图表大小?

Did you need to format each chart picture before exporting for size, or can you change your default chart size?

Const ppLayoutBlank = 2
Const ppViewSlide = 1

Sub ExportChartstoPowerPoint()
    Dim PPApp As Object
    Dim chr
    Set PPApp = CreateObject("PowerPoint.Application")
    PPApp.Presentations.Add
    PPApp.ActiveWindow.ViewType = ppViewSlide
    For Each chr In Sheets("Chart1").ChartObjects
        PPApp.ActivePresentation.Slides.Add PPApp.ActivePresentation.Slides.Count + 1, ppLayoutBlank
        PPApp.ActiveWindow.View.GotoSlide PPApp.ActivePresentation.Slides.Count
        chr.Select
        ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
        PPApp.ActiveWindow.View.Paste
        PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
        PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
    Next chr
    PPApp.Visible = True
End Sub