




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用VBA编程实现PowerPoint文稿格式自动化1VBA简介VBA(VisualBasicForApplication)是微软公司为其办公套件MicrosoftOffice提供的新一代标准宏语言,作为一种通用的宏语言可被所有的Microsoft可编程应用软件所共享。VBA是一种自动化语言,用以实现Office中的应用程序自动化,并创建自定义的解决方案。VBA要是根据用户对可编程应用软件中不同对象的操作,触发的相应事件,去激活相应的程序,通过对相关的对象执行不同的方法,或是修改相关对象的属性来完成特定的工作。可以认为VBA是用程序开发语言VASUALBASIC勺子集,但VBA并不等同于VB,
2、VBA和VB的区别包括如下几个方面:1)VB是设计用于创建标准的应用程序, 而VBA是使已有的可编程应用软件自动化;2)VB具有自己的开发环境,而VBA必须依赖于已有的可编程应用软件;3)VB开发的应用程序可编译为可执行文件(*.EXE), 能独立于开发环境而直接在操作系统下运行, 而VBA开发的程序必须依赖于它的“父”程序,例如:PowerPointo尽管存在这些不同,VBA和VB在结构上仍然十分相似。事实上,如果你已经掌握了VB,会发现学习VBAE常快;相应的,学完VBA也会给学习VB打下坚实的基础2PowerPoint对象模型VBA夺MicrosoftOffice中的每一个应用程序都看成
3、一个对象。每个应用程序都由各自的Application对象代表。VBA是一种基于对象的开发语言,VBA编程更多的是针对用户对应用软件中不同对象的操作,触发的相应事件,去编写对相关对象执行不同的方法,或是修改相关对象的属性等操作的代码。因此在编写VBA程序之前,有必要对相关应用软件中的对象模型作一大概的了解。打开PowerPoint的VBA帮助文档VBAPP10.CHM点击aMicrosoftPowerPoint对象”帮助页面即可看到PowerPoint对象模型”, 从这个模型中很容易找到我们需要的几个集合和对象:Application、Presentations、Presentation、Sl
4、ides、Slide、Shapesshape、Placeholders、PlaceholderFormat、TextFrame、Ruler、TextRange、ParagraphFormat等,其中:Application代表整个MicrosoftPowerPoint应用程序。Application对象包括:应用程序范围内的设置和选项(例如,当前打印机的名称)用于返回顶层对象的属性,例如:ActivePresentation、Windows等。Presentation代表一个PowerPoint演示文稿。Presentation对象属于Presentations集合中的成员。Presentat
5、ions集合中包含所有的Presentation对象,它们分另U代表PowerPoint中所有打开的演示文稿。Slide代表PowerPoint文稿中的单张幻灯片,Slides集合包含演示文稿中的所有Slide对象。Shape代表幻灯片中的单个形状,Shapes集合包含指定幻灯片中的所有Shape对象。Placeholders代表指定幻灯片中占位符的所有Shape对象的集合。Placeholders集合中的每个Shape对象代表一个占位符,占位符可以是文本、图表、表格、组织结构图或其他类型的对象。如果幻灯片有标题,则标题是集合中的第一个占位符。PlaceholderFormat包含专门应用于占
6、位符的属性,例如占位符类型。TextFrame代表Shape对象中的文本框。包含文本框中的文本,还包含控制文本框对齐方式和缩进方式的属性和方法。Ruler代表指定形状或指定样式中所有文本的标尺。包含大纲文本的制表位和缩进设置。TextRange包含附加到形状上的文本,以及用于操作文本的属性和方法。ParagraphFormat代表文本区域的段落格式。3编程说明3.1问题的提出目前,有很多教学教材都带有电子教案等电子文档,其中大多数为Powerpoint演示文稿。但原作者所提供的电子教案并不一定就完全适用于使用者,且不说内容上要作适当的修改,就是文稿格式也不一定适合使用者的要求。内容的修改必须由
7、使用者逐字逐句的斟酌,没法做批量处理;但文稿格式一般固定,即使有差异,也可做个别修改,适合做批量的调整,可以用编程的方式来实现处理的自动化。3.2设计分析PowerPoint文稿的文本格式,大至可分为这么几块:标题版式幻灯片中标题的格式,标题和文本版式幻灯片中的标题格式,其他占位符的格式和其他文本框的文本格式,只要能编程控制这些对象的文本格式,PowerPoint文稿中的文本格式基本确定。因此,必须从PowerPoint对象模型中找出上述对象,并对其相关属性进行修改,以达到控制文本格式的目的。标题版式幻灯片中的标题(其PlaceholderFormat对象的Type属性值为:ppPlaceh-
8、olderCenterTitle)、标题和文本版式幻灯片中的标题(其PlaceholderFormat对象的Type属性值为:ppPlaceholderCenterTitle)、普通文本框(其Shape对象的Type属性值为:msoTextBox)中的文本格式所要控制的内容主要包括:文本字体类型、大小、前景色、粗体、斜体、下划线,行间距,段落前行间距,段落后行间距,对齐方式,缩进格式等。这些内容可通过TextFrame(文本框)中的TextRange(文本)的Font(字体)和ParagraphFormat(段落格式)的各种属性,以及TextFrame(文本框)中的Ruler(标尺)的各种属性
9、来控制。下面对所要用到的上述各种属性作一简单介绍:1字体(Font)对象中常用的属性有:NameAscii返回或设置用于ASCII字符的字体(字符集编号在0-127之间的字符)。NameOther返回或设置亚洲字体名称。NameFarEast返回或设置其字符集编号大于127的字符所用的字体。Size返回或设置字符大小,以磅为单位。Bold决定字符格式是否为粗体。Italic决定字符格式是否为斜体。Underline决定指定文本是否带有下划线。2段落格式(ParagraphFormat)对象中常用的属性有:Alignment用以指定的段落格式为每个段落返回或设置对齐方式。BaseLineAlig
10、nment为指定段落返回或设置基线对齐方式。LineRuleAfter决定是否将每段最后一行后面的行距设为指定的磅数或行数。LineRuleBefore决定是否将每段第一行前面的行距设为指定的磅数或行数。LineRuleWithin决定是否将基线间的行距设为指定磅数或行数。SpaceAfter以磅或行为单位返回或设置指定文本中每段末行后的间距大小。SpaceBefore以磅或行为单位返回或设置指定文本中每段首行前的间距大小。SpaceWithin以磅或行为单位返回或设置指定文本中基准行之间的距离。TextDirection返回或设置指定段落的文本方向。Wordwrap决定是否自动换行以适应形状
11、内部。标尺(Ruler)对象中常用的属性有:Levels返回一个描述大纲缩进格式的RulerLevels对象RulerLevels指定标尺上所有RulerLevel对象的集合。每个RulerLevel对象代表特定大纲级别上文本的首行缩进和左缩进。该集合通常包含五个成员(每个可用大纲级别各一个)。每个RulerLevel对象上有:FirstMargin属性:以磅为单位返回或设置指定大纲级另U的首行缩进。LeftMargin属性:以磅为单位返回或设置指定大纲级另U的左缩进。3.3程序编写思路根据上述分析,可按下述思路编写程序:2)使用一个For循环来遍历文稿中的所有幻灯片,循环次数可由Slides
12、集合对象的Count属性取得。3)循环体内大致分三块内容,一块用以处理标题版式幻灯片中标题的文本格式,一块用以处理标题和文本版式幻灯片中标题的文本格式,一块用以处理普通文本框中的文本格式。4)幻灯片中除标题以外的其他占位符中的文本格式用一个子过程单独进行处理。3.4程序清单:DimMyDocumentAsObjectSubMacro1()宏由xxdwww记录,日期:2006-4-15DimiAsInteger,jAsInteger,kAsInteger,mAsInteger,nAsIntegern=ActivePresentation.Slides.Count取得文稿中的幻灯片张数Fori=1
13、TonSetMyDocument=ActivePresentation.Slides(i)m=MyDocument.Shapes.Placeholders.Count取得每张幻灯片中的占位符数Ifm0ThenSelectCaseMyDocument.Shapes.Placeholders(1).PlaceholderFormat.TypCaseppPlaceholderCenterTitle是标题版式幻灯片中的标题下面是对标题版式幻灯片中标题文本的字体格式进行处理WithMyDocument.Shapes.Title.TextFrame.TextRange.Font.NameAscii=宋体.
14、NameOther=宋体.NameFarEast=宋体.Bold=True.Size=40EndWith下面是对标题版式幻灯片中标题文本的段落格式进行处理WithMyDocument.Shapes.Title.TextFrame.TextRange.ParagraphFormat.Alignment=ppAlignCenter.LineRuleWithin=msoTrue.SpaceWithin=1.LineRuleBefore=msoTrue.SpaceBefore=0.2.LineRuleAfter=msoFalse.SpaceAfter=0EndWithCallNoTitle(2,m)调
15、周NoTitle子过程处理其他占位符中的文本格式CaseppPlaceholderTitle是标题和文本版式幻灯片中的标题下面是对标题和文本版式幻灯片中标题文本的字体格式进行处理WithMyDocument.Shapes.Title.TextFrame.TextRange.Font.NameAscii=宋体.NameOther=宋体.NameFarEast=宋体.Bold=True.Size=32EndWith下面是对标题和文本版式幻灯片中标题文本的段落格式进行处理WithMyDocument.Shapes.Title.TextFrame.TextRange.ParagraphFormat.A
16、lignment=ppAlignLeft.LineRuleWithin=msoTrue.SpaceWithin=1.LineRuleBefore=msoTrue.SpaceBefore=0.2.LineRuleAfter=msoFalse.SpaceAfter=0EndWithCallNoTitle(2,m)调周NoTitle子过程处理其他占位符中的文本格式CaseElse没有标题CallNoTitle(1,m)调周NoTitle子过程处理其他占位符中的文本格式EndSelectEndIfk=MyDocument.Shapes.Count取得幻灯片中形状的总数处理幻灯片中除占位符外其他形状中的
17、文本格式(主要是普通文本框)Forj=m+1TokIfMyDocument.Shapes(j).Type=msoTextBoxThen下面是对形状中文本的段落格式进行处理WithMyDocument.Shapes(j).TextFrame.TextRange.ParagraphFormat.Bold=True.Alignment=ppAlignLeft.LineRuleWithin=msoTrue.SpaceWithin=1.25.LineRuleBefore=msoTrue.SpaceBefore=0.2.LineRuleAfter=msoFalse.SpaceAfter=0EndWith设
18、置形状的大小为容纳其边界内的文本而自动更改。MyDocument.Shapes(j).TextFrame.AutoSize=ppAutoSizeShapeToFitText下面是对形状中文本的首行缩进和左缩进进行处理WithMyDocument.Shapes(j).TextFrame.Ruler.Levels(1).FirstMargin=0.LeftMargin=0EndWith下面是对形状中文本的字体格式进行处理WithMyDocument.Shapes(j).TextFrame.TextRange.Font.NameAscii=宋体.Bold=True.NameOther=宋体.Name
19、FarEast=宋体.Size=24EndWithEndIfNextjNextiEndSubSubNoTitle(n1AsInteger,n2AsInteger)专门处理非标题占位符中的文本格式子过程DimjAsIntegerForj=n1Ton2下面是对占位符中文本的段落格式进行处理WithMyDocument.Shapes.Placeholders(j).TextFrame.TextRange.ParagraphFormat.Alignment=ppAlignLeft.LineRuleWithin=msoTrue.SpaceWithin=1.25.LineRuleBefore=msoTrue.SpaceBefore=0.2.LineRuleAfter=msoFalse.SpaceAfter=0EndWith设置占位符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电气机械在物理学中的应用考核试卷
- 杂粮加工新技术推广应用考核试卷
- 南昌大学共青学院《食品安全案例》2023-2024学年第二学期期末试卷
- 江苏城市职业学院《综合英语V》2023-2024学年第二学期期末试卷
- 南通市港闸区2025年三下数学期末质量跟踪监视模拟试题含解析
- 南京交通职业技术学院《工程伦理学B》2023-2024学年第二学期期末试卷
- 江苏省海门市德胜初中2025年初三中考最后一卷英语试题含答案
- 山东工程职业技术大学《中国当代文学I》2023-2024学年第一学期期末试卷
- 四川汽车职业技术学院《抽样调查》2023-2024学年第一学期期末试卷
- 山东省潍坊市坊子区实验学校2025年三年级数学第二学期期末调研模拟试题含解析
- 配电箱验收记录表
- DB11-T1788-2020技术转移服务人员能力规范
- (部编版一年级下册)语文第七单元复习课件
- 建设项目用地预审与选址意见课件讲解
- GB∕T 23524-2019 石油化工废铂催化剂化学分析方法 铂含量的测定 电感耦合等离子体原子发射光谱法
- 宝宝生日祝福可爱卡通电子相册PPT模板
- 盗窃案件现场勘查应注意的问题
- 丽声北极星分级绘本第二级上Dinner for a Dragon 教学设计
- 上海证券交易所(课堂PPT)
- 用人单位职业健康监护档案(一人一档)
- 80吨吊车性能表
评论
0/150
提交评论