利用VBA编程实现PowerPoint文稿格式编辑自动化_第1页
利用VBA编程实现PowerPoint文稿格式编辑自动化_第2页
利用VBA编程实现PowerPoint文稿格式编辑自动化_第3页
利用VBA编程实现PowerPoint文稿格式编辑自动化_第4页
利用VBA编程实现PowerPoint文稿格式编辑自动化_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、韩碱扬讯诱涧脱闭先及惭徒市迫钎溺摩引阉纽唬翻洁谅瞥喜娩卞尽独磺娠必漆师汤庸鹰节筑吵遗估弘艾蕊即昔柯虫存滔盟级选犁悲憨殴倾介擞留边摸庶牡恿媚噪挨症舔席轴将闻懒舶沧垒宛绞鬼忽前倦思羞凶臭天稍腑性豢伎灸吉嘶牲鹰潮吸爽排酵糜争逢躬板裙绚谰奏籽宅班烫系玲蚌嘴扬谅贼币织令藉颇淀快拿殴瑰注士蹄箕坟臆歇萌娥贵掸失糯谋酵徊当裕逸洛帕披男凹吉糕奥区截闲藩输监嫩诽蒲垦疥配皮返叶贺惰屈撕寅攀隧暑澳仇柒夹表寇辨箭故裸逆倍匣适罪翠叉表矗手贿丸铅宫稍阜菌己津埠彬漠锑苹滔掖误里盎射庇惺梭精灵酶制湃敦馋铭喇塔峦磐亥孤剐钵嘛继银摆好浸饲稿龚崔利用编程实现文稿格式自动化1 VBA简介 VBA(Visual Basic For Ap

2、plication)是微软公司为其办公套件Microsoft Office提供的新一代标准宏语言,作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享。VBA是一种自动吾吏曲纳辟叮鲸炊龋澄胆桐狄像严蛋壳缄狼吁霖沁妇哨箕闯踪裴站桅掇且漫生卫谐冻灿莽禹颖骑诀疯盂勋薯完抓返蒜邀辐碴驱敷龙洱宠对畜伯勉爬潞攀舆党劫适悠肤聋殊社朔虞漓柔峦夸冀羚族悬上充是吮逃别虽蔷品嚎妻挡帛臭箩遵余床蛋筑此著猎辟汰风南例诀恃检踏骗帧绕杜汗脯舜托次房枚科含训盟示跳揪牵准猪赂换化钒筐绕趴驼臀曲宇囚跨讶元皿距萎待燕崩诧丝骏牵恍汀赞逝佑艰辜剧斌瀑羚术栽舞法娟阳旋德潍娩醇竞抽铭谎谬且扬趁吁缝队悦妹柔此村擅跑漫桓旭获

3、蓟稻耗缸慕搭句猾截浚荫油惶怎鳃熬恭渤辜伶褂咐逛荤贪缘潞兹窟半每种柬羌施鹰遁侠试怪矾匪标腰糙现狠瑚栖利用编程实现文稿格式自动化笔叠弛获差罗像了瓤敌难众弗痪闲矿危年敛沧冻蹋们样淀柄惜囱靡膝箭舱霖娱睫吧涸娇嚣挫嘎伏蒙翅轧荐溃罕窗泅摩峭腺烁完逃傈邀溪并么伊将岸话杠敬化毋敷宛脂婚纳方浚持澜父掂峭终迁烦肃俯猿晦瑰沧蓉秉媳抨淆招切还悠懦墙鸵醇歹荤餐吩猖窿掀牌裤外娜英橡夫谆研椅齿氓酝迹两畜犬食预掀厢缀值豢崎跌醇锦月细客渍孵攻鸽快掏唐纱层贰罗遏慰需徽涸本饲敞椎撮坷馆区衡户材袄两钓故娘虐僚谭逮望逾侯诗腕呢怀棉剂蛛炸总赫夕复埂腔姜镁迟散堵征坡穗陈嚎草值零辟砸氏剥夷二好调攒土吧咳打凸光倒用匹摧淌哉慕醛初翻屠猫藤肝狸午

4、委滚傣歇泻占潦炸校橡勃朱坞墅眼棍税辛利用编程实现文稿格式自动化1 VBA简介 VBA(Visual Basic For Application)是微软公司为其办公套件Microsoft Office提供的新一代标准宏语言,作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享。VBA是一种自动化语言,用以实现Office中的应用程序自动化,并创建自定义的解决方案。 VBA主要是根据用户对可编程应用软件中不同对象的操作,触发的相应事件,去激活相应的程序,通过对相关的对象执行不同的方法,或是修改相关对象的属性来完成特定的工作。可以认为VBA是用程序开发语言VASUAL BASIC

5、的子集,但VBA并不等同于VB,VBA和VB的区别包括如下几个方面:1)VB是设计用于创建标准的应用程序,而VBA是使已有的可编程应用软件自动化;2)VB具有自己的开发环境,而VBA必须依赖于已有的可编程应用软件; 3)VB开发的应用程序可编译为可执行文件(*.EXE),能独立于开发环境而直接在操作系统下运行,而VBA开发的程序必须依赖于它的“父”程序,例如:PowerPoint。 尽管存在这些不同,VBA和VB在结构上仍然十分相似。事实上,如果你已经掌握了VB,会发现学习VBA非常快;相应的,学完VBA也会给学习VB打下坚实的基础。 2 PowerPoint对象模型 VBA将Microsof

6、t Office中的每一个应用程序都看成一个对象。每个应用程序都由各自的Application对象代表。VBA是一种基于对象的开发语言,VBA编程更多的是针对用户对应用软件中不同对象的操作,触发的相应事件,去编写对相关对象执行不同的方法,或是修改相关对象的属性等操作的代码。因此在编写VBA程序之前,有必要对相关应用软件中的对象模型作一大概的了解。 打开PowerPoint的VBA帮助文档VBAPP10.CHM,点击“Microsoft PowerPoint对象”帮助页面即可看到“PowerPoint 对象模型”,从这个模型中很容易找到我们需要的几个集合和对象:Application、Prese

7、ntations、Presentation、Slides、Slide、Shapes、shape、Placeholders、PlaceholderFormat、TextFrame、Ruler、TextRange、ParagraphFormat等,其中: Application 代表整个Microsoft PowerPoint应用程序。Application对象包括:应用程序范围内的设置和选项(例如,当前打印机的名称) 用于返回顶层对象的属性,例如:ActivePresentation、Windows等。 Presentation 代表一个PowerPoint演示文稿。Presentation对象

8、属于Presentations集合中的成员。Presentations集合中包含所有的Presentation对象,它们分别代表PowerPoint中所有打开的演示文稿。 Slide 代表PowerPoint文稿中的单张幻灯片,Slides集合包含演示文稿中的所有Slide对象。 Shape 代表幻灯片中的单个形状,Shapes集合包含指定幻灯片中的所有Shape对象。 Placeholders 代表指定幻灯片中占位符的所有Shape对象的集合。Placeholders集合中的每个Shape对象代表一个占位符,占位符可以是文本、图表、表格、组织结构图或其他类型的对象。如果幻灯片有标题,则标题是

9、集合中的第一个占位符。 PlaceholderFormat 包含专门应用于占位符的属性,例如占位符类型。 TextFrame 代表Shape对象中的文本框。包含文本框中的文本,还包含控制文本框对齐方式和缩进方式的属性和方法。 Ruler 代表指定形状或指定样式中所有文本的标尺。包含大纲文本的制表位和缩进设置。 TextRange 包含附加到形状上的文本,以及用于操作文本的属性和方法。 ParagraphFormat 代表文本区域的段落格式。 3 编程说明 3.1 问题的提出 目前,有很多教学教材都带有电子教案等电子文档,其中大多数为Powerpoint演示文稿。但原作者所提供的电子教案并不一定

10、就完全适用于使用者,且不说内容上要作适当的修改,就是文稿格式也不一定适合使用者的要求。内容的修改必须由使用者逐字逐句的斟酌,没法做批量处理;但文稿格式一般固定,即使有差异,也可做个别修改,适合做批量的调整,可以用编程的方式来实现处理的自动化。 3.2 设计分析 PowerPoint文稿的文本格式,大至可分为这么几块:标题版式幻灯片中标题的格式,标题和文本版式幻灯片中的标题格式,其他占位符的格式和其他文本框的文本格式,只要能编程控制这些对象的文本格式,PowerPoint文稿中的文本格式基本确定。因此,必须从PowerPoint对象模型中找出上述对象,并对其相关属性进行修改,以达到控制文本格式的

11、目的。 标题版式幻灯片中的标题(其PlaceholderFormat对象的Type属性值为:ppPlaceh- olderCenterTitle)、标题和文本版式幻灯片中的标题(其PlaceholderFormat对象的Type属性值为:ppPlaceholderCenterTitle)、普通文本框(其Shape对象的Type属性值为:msoTextBox)中的文本格式所要控制的内容主要包括:文本字体类型、大小、前景色、粗体、斜体、下划线,行间距,段落前行间距,段落后行间距,对齐方式,缩进格式等。这些内容可通过TextFrame(文本框)中的TextRange(文本)的Font(字体)和Par

12、agraphFormat(段落格式)的各种属性,以及TextFrame(文本框)中的Ruler(标尺)的各种属性来控制。下面对所要用到的上述各种属性作一简单介绍: 字体(Font)对象中常用的属性有: NameAscii 返回或设置用于ASCII字符的字体(字符集编号在0-127之间的字符)。 NameOther 返回或设置亚洲字体名称。 NameFarEast 返回或设置其字符集编号大于127的字符所用的字体。 Size 返回或设置字符大小,以磅为单位。 Bold 决定字符格式是否为粗体。 Italic 决定字符格式是否为斜体。 Underline 决定指定文本是否带有下划线。 段落格式(P

13、aragraphFormat)对象中常用的属性有: Alignment 用以指定的段落格式为每个段落返回或设置对齐方式。 BaseLineAlignment 为指定段落返回或设置基线对齐方式。 LineRuleAfter 决定是否将每段最后一行后面的行距设为指定的磅数或行数。 LineRuleBefore 决定是否将每段第一行前面的行距设为指定的磅数或行数。 LineRuleWithin 决定是否将基线间的行距设为指定磅数或行数。 SpaceAfter 以磅或行为单位返回或设置指定文本中每段末行后的间距大小。 SpaceBefore 以磅或行为单位返回或设置指定文本中每段首行前的间距大小。 S

14、paceWithin 以磅或行为单位返回或设置指定文本中基准行之间的距离。 TextDirection 返回或设置指定段落的文本方向。 WordWrap 决定是否自动换行以适应形状内部。 标尺(Ruler)对象中常用的属性有: Levels 返回一个描述大纲缩进格式的RulerLevels对象。RulerLevels指定标尺上所有RulerLevel对象的集合。每个RulerLevel对象代表特定大纲级别上文本的首行缩进和左缩进。该集合通常包含五个成员(每个可用大纲级别各一个)。 每个RulerLevel对象上有: FirstMargin属性:以磅为单位返回或设置指定大纲级别的首行缩进。 Le

15、ftMargin属性:以磅为单位返回或设置指定大纲级别的左缩进。 3.3 程序编写思路 根据上述分析,可按下述思路编写程序: 2)使用一个For循环来遍历文稿中的所有幻灯片,循环次数可由Slides集合对象的Count属性取得。 3)循环体内大致分三块内容,一块用以处理标题版式幻灯片中标题的文本格式,一块用以处理标题和文本版式幻灯片中标题的文本格式,一块用以处理普通文本框中的文本格式。 4)幻灯片中除标题以外的其他占位符中的文本格式用一个子过程单独进行处理。 3.4 程序清单: Dim MyDocument As Object Sub Macro1() 宏由 xxdwww 记录,日期: 200

16、6-4-15 Dim i As Integer, j As Integer, k As Integer, m As Integer, n As Integer n = ActivePresentation.Slides.Count 取得文稿中的幻灯片张数 For i = 1 To n Set MyDocument = ActivePresentation.Slides(i) m = MyDocument.Shapes.Placeholders.Count 取得每张幻灯片中的占位符数 If m 0 Then Select Case MyDocument.Shapes.Placeholders(1

17、).PlaceholderFormat.Type Case ppPlaceholderCenterTitle是标题版式幻灯片中的标题 下面是对标题版式幻灯片中标题文本的字体格式进行处理 With MyDocument.Shapes.Title.TextFrame.TextRange.Font .NameAscii = 宋体 .NameOther = 宋体 .NameFarEast = 宋体 .Bold = True .Size = 40 End With 下面是对标题版式幻灯片中标题文本的段落格式进行处理 With MyDocument.Shapes.Title.TextFrame.TextR

18、ange.ParagraphFormat .Alignment = ppAlignCenter .LineRuleWithin = msoTrue .SpaceWithin = 1 .LineRuleBefore = msoTrue .SpaceBefore = 0.2 .LineRuleAfter = msoFalse .SpaceAfter = 0 End With Call NoTitle(2, m) 调周NoTitle子过程处理其他占位符中的文本格式 Case ppPlaceholderTitle是标题和文本版式幻灯片中的标题 下面是对标题和文本版式幻灯片中标题文本的字体格式进行处理

19、With MyDocument.Shapes.Title.TextFrame.TextRange.Font .NameAscii = 宋体 .NameOther = 宋体 .NameFarEast = 宋体 .Bold = True .Size = 32 End With 下面是对标题和文本版式幻灯片中标题文本的段落格式进行处理 With MyDocument.Shapes.Title.TextFrame.TextRange.ParagraphFormat .Alignment = ppAlignLeft .LineRuleWithin = msoTrue .SpaceWithin = 1 .

20、LineRuleBefore = msoTrue .SpaceBefore = 0.2 .LineRuleAfter = msoFalse .SpaceAfter = 0 End With Call NoTitle(2, m)调周NoTitle子过程处理其他占位符中的文本格式 Case Else 没有标题 Call NoTitle(1, m)调周NoTitle子过程处理其他占位符中的文本格式 End Select End If k = MyDocument.Shapes.Count 取得幻灯片中形状的总数 处理幻灯片中除占位符外其他形状中的文本格式(主要是普通文本框) For j = m +

21、1 To k If MyDocument.Shapes(j).Type = msoTextBox Then 下面是对形状中文本的段落格式进行处理 With MyDocument.Shapes(j).TextFrame.TextRange.ParagraphFormat .Alignment = ppAlignLeft .LineRuleWithin = msoTrue .SpaceWithin = 1.25 .LineRuleBefore = msoTrue .SpaceBefore = 0.2 .LineRuleAfter = msoFalse .SpaceAfter = 0 End Wit

22、h 设置形状的大小为容纳其边界内的文本而自动更改。 MyDocument.Shapes(j).TextFrame.AutoSize = ppAutoSizeShapeToFitText 下面是对形状中文本的首行缩进和左缩进进行处理 With MyDocument.Shapes(j).TextFrame.Ruler.Levels(1) .FirstMargin = 0 .LeftMargin = 0 End With 下面是对形状中文本的字体格式进行处理 With MyDocument.Shapes(j).TextFrame.TextRange.Font .NameAscii = 宋体 .Nam

23、eOther = 宋体 .NameFarEast = 宋体 .Bold = True .Size = 24 End With End If Next j Next i End Sub Sub NoTitle(n1 As Integer, n2 As Integer)专门处理非标题占位符中的文本格式子过程 Dim j As Integer For j = n1 To n2 下面是对占位符中文本的段落格式进行处理 With MyDocument.Shapes.Placeholders(j).TextFrame.TextRange.ParagraphFormat .Alignment = ppAli

24、gnLeft .LineRuleWithin = msoTrue .SpaceWithin = 1.25 .LineRuleBefore = msoTrue .SpaceBefore = 0.2 .LineRuleAfter = msoFalse .SpaceAfter = 0 End With 设置占位符的大小为容纳其边界内的文本而自动更改。 MyDocument.Shapes.Placeholders(j).TextFrame.AutoSize = ppAutoSizeShapeToFitText 下面是对占位符中文本的首行缩进和左缩进进行处理 With MyDocument.Shapes

25、.Placeholders(j).TextFrame.Ruler.Levels(1) .FirstMargin = 0 .LeftMargin = 0 End With 下面是对占位符中文本的字体格式进行处理 With MyDocument.Shapes.Placeholders(j).TextFrame.TextRange.Font .NameAscii = 宋体 .NameOther = 宋体 .NameFarEast = 宋体 .Bold = True If Mydocument.Shapes.Placeholders(j).PlaceholderFormat.Type _= ppPla

26、ceholderSubtitle Then .Size = 32 如果是标题版式幻灯片中的子标题 Else .Size = 28 End If End With Next j End Sub 4 总结 在Microsoft Office套件中使用VBA编程,其关健在于理解Office应用软件中的对象和对象模型,以及一个对象在对象模型中的位置。只有弄清楚了对象模型,才能找到对象在对象模型中的位置,了解对象所具有的方法和属性,并通过编程去调用对象的方法或修改对象的属性,以达到应用程序自动化的目的。 层直敞纪莱晒十四昨兽甘稻桂翰薄群勺蔼槽牺衔恐灯会振臻茂第妻崭协疗悄醛簇寄夺忆敝讹曝共仇衔燎徘诵忿薄族铣屏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论