首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将所选图表作为图像导出到不同的.ppt幻灯片

将所选图表作为图像导出到不同的.ppt幻灯片
EN

Stack Overflow用户
提问于 2017-07-03 15:20:43
回答 1查看 37关注 0票数 0

我想要做的是将一组图表作为图像导出到不同的PowerPoint幻灯片中。当我尝试导出单个图表时,它可以工作,但选择多个图表并再次尝试导出它们不起作用。

我遗漏了什么?下面是我到目前为止尝试解决问题的代码。

代码语言:javascript
运行
AI代码解释
复制
Sub SendTop2ChartsToPPT()
Dim pptApp As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation
Dim pptSlide As PowerPoint.Slide
Dim pptShape As PowerPoint.Shape
Dim pptShpRng As PowerPoint.ShapeRange
Dim lActiveSlideNo As Long
Dim ChtObj As ChartObject
Dim ChartSh As Worksheet
Dim FolderPath As String
Dim fName As String

Set ChartSh = Worksheets("Graphs")
FolderPath = ThisWorkbook.Path
fName = "Report Top2 (" & Format(Date, "yyyy-mmm") & ")"
On Error Resume Next
Set pptApp = GetObject(, "PowerPoint.Application")
On Error Resume Next
If pptApp Is Nothing Then
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPres = pptApp.Presentations.Add
    Set pptSlide = pptPres.Slides.Add(pptPres.Slides.Count + 1, ppLayoutBlank)
Else
    If pptApp.Presentations.Count > 0 Then
        Set pptPres = pptApp.ActivePresentation
        If pptPres.Slides.Count > 0 Then
            lActiveSlideNo = pptApp.ActiveWindow.View.Slide.SlideIndex
            Set pptSlide = pptPres.Slides(lActiveSlideNo)
        Else
            Set pptSlide = pptPres.Slides.Add(pptPres.Slides.Count + 1, ppLayoutBlank)
        End If
    Else
        Set pptPres = pptApp.Presentations.Add
        Set pptSlide = pptPres.Slides.Add(pptPres.Slides.Count + 1, ppLayoutBlank)
    End If
End If
ChartSh.Shapes.Range(Array("Top2SiteVisits", "Top2SiteShare")).Select
Set ChtObj = Selection.ShapeRange.Group
ChtObj.CopyPicture

    With pptSlide
        .Shapes.Paste
        Set pptShape = .Shapes(.Shapes.Count)
        Set pptShpRng = .Shapes.Range(pptShape.Name)
    End With

    With pptShpRng
        .Top = 0
        .Left = 0
        .Height = pptPres.PageSetup.SlideHeight
        .Width = pptPres.PageSetup.SlideWidth
    End With

    With pptPres
        .SaveAs FolderPath & "\" & fName & ".pptx"
        .Close
    End With

    pptApp.Quit
    ChtObj.ShapeRange.Ungroup
    Set pptSlide = Nothing
    Set pptPres = Nothing
    Set pptApp = Nothing
End Sub
EN

回答 1

Stack Overflow用户

发布于 2017-07-03 16:38:24

脚本的powerpoint部分没有问题,可以正常工作。

当涉及到图表时,我建议不要处理形状,而是只使用ChartObjects集合- ChartObject是保存工作表上实际Chart的容器。

我不完全确定你所说的“选择”图表发送到ppt是什么意思,以及为什么你想要处理一个ShapeRange数组和形状组之类的东西,但是假设你在一张工作表上有一堆图表,你选择了一些图表,并希望将它们作为图片复制粘贴到powerpoint中:下面就是这样做的,每个图表都有一个新的幻灯片。

代码语言:javascript
运行
AI代码解释
复制
Sub SelectedChartsToPPTSlide()
Dim pptApp As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation
Dim pptSlide As PowerPoint.Slide
Dim ChtObj As ChartObject

Set pptApp = New PowerPoint.Application
Set pptPres = pptApp.Presentations.Add

For Each ChtObj In Selection 'Will error if your selection includes other shapes and such.
    Set pptSlide = pptPres.Slides.Add(pptPres.Slides.Count + 1, ppLayoutBlank)
    ChtObj.Chart.CopyPicture
    pptSlide.Shapes.PasteSpecial
Next ChtObj

Set pptSlide = Nothing
Set pptPres = Nothing
Set pptApp = Nothing
End Sub

同样,您可以循环遍历工作表中的ChartObjects

代码语言:javascript
运行
AI代码解释
复制
For each ChtObj in Worksheets("Graphs").ChartObjects
    If ChtObj.Chart.Name = "Some name here" Then
        'Do stuff with that chart
    End If
Next ChtObj

希望这能有所帮助。

注:如果你需要操作powerpoint幻灯片上的图片,你可以在PasteSpecial之后使用Set pastedPictureShape = pptSlide.Shapes(pptSlide.Shapes.Count)捕捉它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44889149

复制
相关文章
盘点AI赋能PPT的办公工具
随着 chatgpt 的出圈,ai 已经开始已风卷残云之势占据了各个领域,几乎所有的领域都在被 AI 赋能,以前我们经常说干活的累死累活,有成果那又如何,到头来干不过写 ppt 的,现在不要紧了,我们可以通过 ai 来写 ppt 了,那些靠写 ppt 的再也不能嚣张跋扈了。
程序那些事儿
2023/07/24
8730
盘点AI赋能PPT的办公工具
书单 | 职场办公类私藏好书,轻松Get职场必备技能【文末赠书】
👆点击“博文视点Broadview”,获取文末赠书 作为一名职场人,不管在什么岗位上,都离不开办公工具的使用,也离不开演讲与表达。 工具用得好,懂得清楚地表达自己,不仅可以提高工作效率,还有助于升职加薪,走上人生巅峰! 为了帮助大家更好地使用办公工具,让演讲表达不再难,博文菌特地挑选出了博文视点10本职场办公类好书,希望能够帮大家轻松Get职场必备技能! ----   01 ▊《WPS之光:全能一本通 Office办公三合一(全彩)》 冯注龙 著 国人就用国民软件WPS 金山CEO&高级副总裁亲自
博文视点Broadview
2023/05/19
5060
书单 | 职场办公类私藏好书,轻松Get职场必备技能【文末赠书】
小知识:PPT的幻灯片放映设置
最近给某客户讲课时,碰到了幻灯片自动翻页的情况,发现是因为之前做过粗略的计时演练,有些片子就快速过了。
Alfred Zhao
2023/09/16
1390
小知识:PPT的幻灯片放映设置
实用!这个插件可以让PPT导出指定分辨率的TIF图片
很早之前,我们就提到修改PPT注册表文件可以设置PPT科研绘图导出图片的分辨率:
百味科研芝士
2021/09/03
7K0
实用!这个插件可以让PPT导出指定分辨率的TIF图片
Office2019 for Mac(办公套件全家桶)
Microsoft Office 2019 是微软在Mac发行的Office办公软件套件。包含的五个办公套件可以让你在职场游刃有余,包含Word mac版 — 全球最流行的文本编辑软件,Excel mac版 — 最流的表格处理软件,PowerPoint mac版 — 最流行的ppt幻灯片制作软件,Outlook mac版 — 老牌的邮件收发管理客户端,
Mac小小心
2023/03/23
6830
Office2019 for Mac(办公套件全家桶)
MindManager21全新版思维导图工具介绍
MindManager将使您专注,有条理并节省时间。节约了很多时间成!一款功能强大的办公类思维导图软件,该软件是由mindjet所打造的,界面简约清爽,而且没有那么多花里胡哨的功能,以虚拟白板的方式为主,用户可以通过单一视图进行头脑风暴,用户可以根通过它清爽的制定专门的雪域工作计划,展示进度等,实用性极强。
用户7442547
2022/09/01
2.2K0
MindManager专业版2022思维导图工具
MindManager2022这是一款相当实用的可视化工作效率工具和思维导图软件。你可以使用MindManager来进行项目管理,组织信息,甚至是进行头脑风暴。思维导图能有效地激发联想,实现思维暂存,使用这款软件来帮助你发散思维,整理信息吧,用一次就会爱上!
用户7442547
2022/07/16
3.2K0
MindManager专业版2022思维导图工具
免费ppt模板在线下载?盘点那些超好用的免费在线工具!
hello,大家好,不知道大家电脑里装了多少软件,内存够不够,反正我是能不装就不装,能在线使用就在线使用,比如office,我就是用石墨文档替代,还有ppt编辑工具,图片海报设计工具,视频剪辑工具等等这些其实也有了很多不错的在线工具,既节约了内存,而且方便好用,何乐不为,今天小白就整理了一波免费的在线工具。
LOGO设计小能手
2020/06/08
4.6K0
免费ppt模板在线下载?盘点那些超好用的免费在线工具!
ppt: 快速将幻灯片逆序排列
文章背景:在工作中,有时遇到一份ppt,顺序正好是乱的。现在想要将最后一页放在开头,倒数第二页放在开头第二页...。如果一份ppt有多页幻灯片,手动操作特别费劲。在网上查阅资料后,发现可以通过宏命令来实现批量操作,下面介绍两种方式。
Exploring
2022/09/20
2.8K0
ppt: 快速将幻灯片逆序排列
如何将html格式动态图表网页嵌入ppt中
前几天魔方学院(其实就是我的公众号交流群啦~_~)的一位群友突然在群里提了一个问题! 看了之前推送的REmap相关内容,结果导出的图表是html格式的动态图,不知道如何将此种格式的图表放在ppt中使用。 这确实很尴尬他呀,你不能直接拿着Rstudio跟客户演示呀(而且还不保证每一台PC上都安装有R语言软件),如果是ppt展示,突然退出来,然后用浏览器打开html文件也是够突兀的。 当然这个情况在r语言中其实很普遍,很多依赖底层js语言编写的二次开发包(比如R语言中的recharts、RERmap、Rchar
数据小磨坊
2018/04/11
34K2
如何将html格式动态图表网页嵌入ppt中
汇报工作与众不同:在PPT中展示Power BI动态图表
在服饰行业工作,免不了汇报工作,比方销售周报、销售月报等等,一般采用PPT形式。但是,PPT有两个缺陷:
wujunmin
2021/09/07
2.8K0
汇报工作与众不同:在PPT中展示Power BI动态图表
产品经理实用的工具清单
身为一枚猿猿,大环境下,我们能做的,只有努力提升自己技能以及知识领域广度。
贺biubiu
2019/04/24
2.9K0
产品经理实用的工具清单
怎样插入图表?用图表功能可以插入不同的图表。
1、点击[插入] 2、点击[图表] 3、点击[折线图] 4、点击[确定]
裴来凡
2022/05/28
1.6K0
怎样插入图表?用图表功能可以插入不同的图表。
Excel图表技巧08:让图表根据不同的值显示不同的背景色
4. 选择单元格区域E3:L15(如果因图表覆盖而不方便选择,可先将图表拖开,之后再将图表拖回来),设置条件格式规则如下图2所示。
fanjy
2021/02/05
3.2K0
PPT制作模板:Keynote for Mac
Keynote for Mac是一款PPT制作模板,Keynote不仅支持几乎所有的图片字体,还可以使界面和设计也更图形化,借助OS X内置的 Quartz等图形技术,制作的幻灯片也更容易夺人眼球。另外,Keynote还有真三维转换,幻灯片在切换的时候用户便可选择旋转立方体等多种方式。
Mac软件分享
2022/09/04
2.2K0
PPT制作模板:Keynote for Mac
<自动化办公> 两秒完成250页豆瓣电影PPT最终效果展示
PPT并不好用, 但还是得用它, 这里借用豆瓣Top250的电影信息, 利用python-pptx (0.6.7)自动生成250张PPT, 希望通过实例, 给常年整理PPT报表的上班族, 一个解放生产
zhaoolee
2018/04/19
1.9K0
<自动化办公> 两秒完成250页豆瓣电影PPT最终效果展示
不同图表类型的使用场景
来这里找志同道合的小伙伴! 上一篇给大家介绍了图表制作过中突破常规的布局思维——单元格与图表结合的技巧。 今天要给大家介绍常用的图表适用场景。 ▌我们在平时图表运用中时常会陷入这样的困惑,一组数据到底应该选择哪种图表来表达。 总在柱形图、条形图、饼图、散点图、面积图、折线图、或者雷达图等图表之中徘徊不定。 其实不同图表在表达数据方面确实是有讲究的,有些适合做对比;有些适合用来表现趋势。那么我们应该怎么选择呢? ▌在知乎还有新浪微博上,有很多Excel高手都分享过图表适用心得。不过总结的较为完善的还是刘
数据小磨坊
2018/04/10
2K0
不同图表类型的使用场景
Python 办公自动化,全网最全干货来了!
为什么会有这么多的体力活呢?怎么才能真正摆脱复制粘贴式的工作,提高办公自动化快人一步呢?
可以叫我才哥
2022/11/11
1.4K0
Python 办公自动化,全网最全干货来了!
将Maple输出的LaTex导出到txt文件
注意: LambertW erf arctanh这几个命令会导致Latex命令报错,需要在使用的时候替换掉
Enjoy233
2019/03/05
2.3K0
VBA: 将数组输出到工作表
文章背景:工作中,有时需要获取数据源的信息,临时存储在数组中,然后再将数组中的数据传递到目标工作表中。其中主要用到Resize函数,WorksheetFunction.transpose函数和WorksheetFunction.Index函数。
Exploring
2022/09/20
4.3K0
VBA: 将数组输出到工作表

相似问题

Bash -导出odp / ppt幻灯片作为图像

31

用于将图表插入到ppt幻灯片中的VBA

10

Excel VBA -批量图表导出到ppt

155

PPT幻灯片到图像

34

将幻灯片插入ppt

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文