【问题标题】:Resizing Excel Chart Using VBA in Powerpoint在 Powerpoint 中使用 VBA 调整 Excel 图表大小
【发布时间】:2017-01-25 09:18:17
【问题描述】:

我知道以前有人问过这个问题,但由于我不是 VBA 专家,我似乎无法找到任何适合我的特定场景的解决方案,所以我希望有人能提供帮助。

我有一些 VBA 代码可以从 Excel 中复制所选内容,根据模板打开一个新的 powerpoint 演示文稿,然后将数据粘贴到 powerpoint 的第二张幻灯片中。

我现在唯一想做的就是在图表出现后操纵它的大小和位置。我需要在下面的代码中添加什么才能做到这一点?

   'Opens a new PowerPoint presentation based on template and pastes data into Slide 2 of Powerpoint from Excel

Dim PPapp As PowerPoint.Application, PPpres As PowerPoint.Presentation, PPslide As PowerPoint.Slide
Dim XLws As Worksheet

    Set XLws = ActiveSheet
    Set PPapp = New PowerPoint.Application
    Set PPpres = PPapp.Presentations.Open("C:\Users\Colin\Dropbox (Edge45)\Edge45 Team Folder\Edge45 Company Documents\Templates\Powerpoint Templates\Edge45 Audit Template Macro.potm", Untitled:=msoTrue)
    PPapp.Visible = True
    Set PPslide = PPpres.Slides(2)
    XLws.Range("A1:D16").Copy
    PPslide.Shapes.PasteSpecial DataType:=ppPasteHTML, Link:=msoFalse
    Application.CutCopyMode = False

【问题讨论】:

    标签: vba excel powerpoint


    【解决方案1】:

    定义一个 Shape 对象并玩转:

    'Opens a new PowerPoint presentation based on template and pastes data into Slide 2 of Powerpoint from Excel
    
    Dim PPapp As PowerPoint.Application, PPpres As PowerPoint.Presentation, PPslide As PowerPoint.Slide, PPShape As Object
    Dim XLws As Worksheet
    
    Set XLws = ActiveSheet
    Set PPapp = New PowerPoint.Application
    Set PPpres = PPapp.Presentations.Open("C:\Users\Colin\Dropbox (Edge45)\Edge45 Team Folder\Edge45 Company Documents\Templates\Powerpoint Templates\Edge45 Audit Template Macro.potm", Untitled:=msoTrue)
    PPapp.Visible = True
    Set PPslide = PPpres.Slides(2)
    XLws.Range("A1:D16").Copy
    Set PPShape = PPslide.Shapes.PasteSpecial(DataType:=ppPasteHTML, Link:=msoFalse)
    Application.CutCopyMode = False
    
    With PPShape
        .Top = 10
        .Height = 100
        .Left = 10
        .Width = 100
    End With
    

    【讨论】:

    • 谢谢您,但我得到一个运行时错误类型 13 与您修改后的代码不匹配 - 不幸的是我不知道这意味着什么 - 有什么想法吗?
    • @superhans :尝试编辑,我不知道为什么,但显然 PowerPoint 在粘贴时改变了类型!
    • @superhans :我将答案中的代码更改为(我希望!)解决问题!
    • 如果工作表很长,Powerpoint 可以用垂直滚动条显示吗?
    • @JaredThirsk :我会说不...我发现的唯一东西可能是(在With PPShape 内):.AutoShapeType = msoShapeVerticalScroll(如果在 Excel 中无法识别 => Const msoShapeVerticalScroll = 101 (&H65))让我知道怎么回事!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 2018-10-21
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多