怎么将hashmap的数据传递给js_将Excel数据信息传递给Powerpoint应用

11ece9f50af60b5bc446b70aeaf96f3e.png

大家好,我们今日讲解“VBA信息获取与处理”教程中第十六个专题“将Excel信息传递给Powerpoint及文本文件”的第一节“将Excel数据信息传递给Powerpoint应用”,这个专题是非常实用的知识点,希望大家能掌握利用。教程会提供配套的程序文件。

大家好,在上一个专题中,我们介绍了如何将EXCEL中的数据信息传递给word,以及如何将excel的信息与word的模板文件合并成一个文件展示给用户的方法。这些应用都是在工作中利用较多的,但代码编写起来的跨度较大,需要我们掌握的知识点较多,我尽可能地把我的代码全面地提供给读者,以便大家加以选择利用。

这讲的专题是如何将Excel信息传递给Powerpoint及文本文件,同时还要介绍将文本文件传递给EXCEL的方法,通过这个专题的学习,希望大家对跨应用的VBA利用能有更加深刻的认识。

第一节 将Excel数据信息传递给Powerpoint应用

Microsoft Office PowerPoint是指微软公司的演示文稿软件。用户可以在投影仪或者计算机上进行演示,也可以将演示文稿打印出来,制作成胶片,以便应用到更广泛的领域中。利用Microsoft Office PowerPoint不仅可以创建演示文稿,还可以在互联网上召开面对面会议、远程会议或在网上给观众展示演示文稿。Microsoft Office PowerPoint做出来的叫演示文稿,其格式后缀名为:ppt、pptx;或者也可以保存为:pdf、图片格式等。2010及以上版本中可保存为视频格式。演示文稿中的每一页就叫幻灯片。

这种应用在实际工作中是非常广泛的,以下会议的展示汇报都要依靠这款应用,这就需要我们把一些存放在excel中的信息导入到这款应用中。如何实现呢?我们这节就来讲解。

实现场景,我们仍是利用上一专题的数据:

da479822d00eecde044b24ab0760e53a.png

当我们点击运行按钮要求把上面的数据、图表导入到EXCEL中。

1 将Excel数据信息传递给Powerpoint应用的思路分析

为了实现上述的场景要求,我们可以事先保存一个ppt的模板文件,用于模板文件,当打开ppt文件后可以将指定的模板文件用于演示文稿。

然后我们开始添加幻灯片,利用的语句:.Slides.Add(1, ppLayoutTitle)或者是.Slides.Add(2, ppLayoutTextAndChart),指定添加的是题目还是文本及图表。这个时候,我们就可以按照excel中的信息添加给Powerpoint应用的各个幻灯片了。最后要关闭,清空内存。

思路是很好建立的,在书写代码的时候,还是我一贯的建议,要在理解的基础上利用,不要自己去写代码,而是修改,修正为自己需要的代码。

2 将Excel数据信息传递给Powerpoint应用的代码实现

我给出实现上述思路的代码:

Sub mynz()

Dim objPPTApp As Object

Dim objPPTPresen As Object

Dim objPPTSlide As Object

strTemp = ThisWorkbook.Path& "016M模板.pptx"

Set objPPTApp = CreateObject("Powerpoint.Application")

'Presentations.Add method msoFalse新演示文稿不可见;msoTrue默认值在可视窗口中创建演示文稿。

Set objPPTPresen = objPPTApp.Presentations.Add(msoTrue)

objPPTApp.Visible = True

'ApplyTemplate方法:将设计模板应用于指定的演示文稿。

objPPTPresen.ApplyTemplateFilename:=strTemp

'定义两个常数参数

Const ppLayoutTitle = 1

Const ppLayoutTextAndChart = 5

Sheets("Sheet1").Select

'添加第一张幻灯片ppLayoutTitle

Set objPPTSlide = objPPTPresen.Slides.Add(1, ppLayoutTitle)

With objPPTSlide.Shapes

'Placeholders占位符对象,代表指定幻灯片上的占位符的所有Shape对象的集合。

.Placeholders(1).TextFrame.TextRange.Text = Range("B1")

.Placeholders(2).TextFrame.TextRange.Text = "以下数据是我们团队经过大量调查得到的数据,分析如下:"

End With

'添加第二张幻灯片ppLayoutTextAndChart

Set objPPTSlide = objPPTPresen.Slides.Add(2, ppLayoutTextAndChart)

With objPPTSlide.Shapes

.Placeholders(1).TextFrame.TextRange.Text = Range("B3")

.Placeholders(2).TextFrame.TextRange.Text = "前三项:" & _

Range("B5") & "," & Range("B6") & "," & Range("B7")

End With

Sheets("Sheet1").ChartObjects(1).CopyPicture

objPPTSlide.Shapes.Paste

With objPPTSlide.Shapes(4)

.Left = objPPTSlide.Shapes(3).Left

.Top = objPPTSlide.Shapes(3).Top

'Shape.ScaleWidth(Single, MsoTriState, MsoScaleFrom) Method

'Specifies a tri-state value. msoFalse为FALSE

'MsoScaleFrom指定在缩放形状时,该形状的哪一部分将保持在原有的位置。msoScaleFromTopLeft 0 形状的左上角保持在原有的位置。

.ScaleWidth 1.2, msoFalse, msoScaleFromTopLeft

End With

objPPTSlide.Shapes(3).Delete

'添加第三张幻灯片ppLayoutTextAndChart

Set objPPTSlide = objPPTPresen.Slides.Add(3, ppLayoutTextAndChart)

With objPPTSlide.Shapes

.Placeholders(1).TextFrame.TextRange.Text = Range("B22")

.Placeholders(2).TextFrame.TextRange.Text = "前三项:" & _

Range("B24") & "," & Range("B25") & "," & Range("B26")

End With

Sheets("Sheet1").ChartObjects(2).CopyPicture

objPPTSlide.Shapes.Paste

With objPPTSlide.Shapes(4)

.Left = objPPTSlide.Shapes(3).Left

.Top = objPPTSlide.Shapes(3).Top

.ScaleWidth 1.2, msoFalse, msoScaleFromTopLeft

End With

objPPTSlide.Shapes(3).Delete

'保存文件

objPPTPresen.SaveAs Filename:=ThisWorkbook.Path& "016PPT文件.pptx"

objPPTPresen.Close

objPPTApp.Quit

Set objPPTSlide = Nothing

Set objPPTPresen = Nothing

Set objPPTApp = Nothing

MsgBox "ok!"

End Sub

代码的部分截图:

d708ac2990126b6656dca8cbe7aeb371.png

代码的讲解:

1)strTemp = ThisWorkbook.Path& "016M模板.pptx"指定模板文件,当然也可以是模板文件的格式。

2)Set objPPTApp = CreateObject("Powerpoint.Application")后期绑定Powerpoint

3)'Presentations.Add method msoFalse新演示文稿不可见;msoTrue默认值在可视窗口中创建演示文稿。

Set objPPTPresen = objPPTApp.Presentations.Add(msoTrue)

objPPTApp.Visible = True

添加一个新的PPT文件,文稿可见。

4)'ApplyTemplate方法:将设计模板应用于指定的演示文稿。

objPPTPresen.ApplyTemplateFilename:=strTemp

将上述实现设定的模板用于打开的这个演示文件

5)Sheets("Sheet1").Select

'添加第一张幻灯片ppLayoutTitle

Set objPPTSlide = objPPTPresen.Slides.Add(1, ppLayoutTitle)

With objPPTSlide.Shapes

'Placeholders占位符对象,代表指定幻灯片上的占位符的所有Shape对象的集合。

.Placeholders(1).TextFrame.TextRange.Text = Range("B1")

.Placeholders(2).TextFrame.TextRange.Text = "以下数据是我们团队经过大量调查得到的数据,分析如下:"

End With

添加第一张幻灯片,题目是Range("B1"),南非荣是"以下数据是我们团队经过大量调查得到的数据,分析如下:"

6)Sheets("Sheet1").ChartObjects(1).CopyPicture

objPPTSlide.Shapes.Paste

向演示文稿中添加图表

7)With objPPTSlide.Shapes(4)

.Left = objPPTSlide.Shapes(3).Left

.Top = objPPTSlide.Shapes(3).Top

'Shape.ScaleWidth(Single, MsoTriState, MsoScaleFrom) Method

'Specifies a tri-state value. msoFalse为FALSE

'MsoScaleFrom指定在缩放形状时,该形状的哪一部分将保持在原有的位置。msoScaleFromTopLeft 0 形状的左上角保持在原有的位置。

.ScaleWidth 1.2, msoFalse, msoScaleFromTopLeft

End With

对于这个幻灯片中形状的设置。

3 将Excel数据信息传递给Powerpoint应用的实现效果

我们点击第一个截图的运行按钮,就会生成一个新的PPT演示文稿,打开它:

0039948f403192c7257552255f51dc3d.png

6fade80f67b032605bf45f276d202478.png

b071db99209f83b4aa523351a55a5c2d.png

由以上效果可以看出,完成了我们当初的思路。

本节知识点回向:

① 本例中实现excel信息传递给PPT的思路是如何建立的?

② 本例中的代码添加标题和图表,文本有什么不同?

本讲代码参考文件:016工作表.xlsm

c14f72170a182e3e8dddb6707467264b.png

积木编程的思路内涵:

在我的系列书籍中一直在强调“搭积木”的编程思路,这也是学习利用VBA的主要方法,特别是职场人员,更是要采用这种方案。其主要的内涵:

1 代码不要自己全部的录入。你要做的是把积木放在合适的位置然后去修正代码,一定要拷贝,从你的积木库中去拷贝,然后修正代码,把时间利用到高效的思考上。

2 建立自己的“积木库”。平时在学习过程中,把自己认为有用的代码放在一起,多积累,在用到的时候,可以随时拿来。你的积木库资料越多,你做程序的思路就会越广。

c14f72170a182e3e8dddb6707467264b.png

VBA的应用界定及学习教程:

VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!

我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程,目前教程均通过32位和64位两种OFFICE系统测试。

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,听元音更易接受。这套教程还会额外提供通过32位和64位两种OFFICE系统测试的程序文件。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

第六套教程:《VBA信息获取与处理》是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。

上述教程的学习顺序:1→3→2→6→5或者4→3→2→6→5。提供的程序文件更是一座巨大的代码库,供读者使用,如需要可以WeChat: NZ9668

928e0e3af31fe66dcadcd368a7f5ae85.png

学习VBA是个过程,也需要经历一种枯燥的感觉

“众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山”。学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。我的教程助力给正在努力的朋友。

“水善利万物而不争”,绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。学习时微而无声,利用时则巨则汹涌。“路漫漫其修远兮,吾将上下而求索”

每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,

忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

分享我多年工作实际经验的成果,随喜这些有用的东西,给确实需要利用VBA的同路人。回向学习利用VBA的历历往事,不胜感慨,谨以这些文字以纪念,

分享成果,随喜正能量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值