利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx

上传人:b****2 文档编号:13986417 上传时间:2023-06-19 格式:DOCX 页数:11 大小:18.25KB
下载 相关 举报
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第1页
第1页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第2页
第2页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第3页
第3页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第4页
第4页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第5页
第5页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第6页
第6页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第7页
第7页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第8页
第8页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第9页
第9页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第10页
第10页 / 共11页
利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx

《利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx》由会员分享,可在线阅读,更多相关《利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx(11页珍藏版)》请在冰点文库上搜索。

利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档.docx

利用VBA编程实现PowerPoint文稿格式编辑自动化精选文档

 

利用VBA编程实现PowerPoint文稿格式自动化

  1VBA简介

  VBA(VisualBasicForApplication)是微软公司为其办公套件MicrosoftOffice提供的新一代标准宏语言,作为一种通用的宏语言可被所有的Microsoft可编程应用软件所共享。

VBA是一种自动化语言,用以实现Office中的应用程序自动化,并创建自定义的解决方案。

  VBA主要是根据用户对可编程应用软件中不同对象的操作,触发的相应事件,去激活相应的程序,通过对相关的对象执行不同的方法,或是修改相关对象的属性来完成特定的工作。

可以认为VBA是用程序开发语言VASUALBASIC的子集,但VBA并不等同于VB,VBA和VB的区别包括如下几个方面:

1)VB是设计用于创建标准的应用程序,而VBA是使已有的可编程应用软件自动化;2)VB具有自己的开发环境,而VBA必须依赖于已有的可编程应用软件;

  3)VB开发的应用程序可编译为可执行文件(*.EXE),能独立于开发环境而直接在操作系统下运行,而VBA开发的程序必须依赖于它的“父”程序,例如:

PowerPoint。

  尽管存在这些不同,VBA和VB在结构上仍然十分相似。

事实上,如果你已经掌握了VB,会发现学习VBA非常快;相应的,学完VBA也会给学习VB打下坚实的基础。

  2PowerPoint对象模型

  VBA将MicrosoftOffice中的每一个应用程序都看成一个对象。

每个应用程序都由各自的Application对象代表。

VBA是一种基于对象的开发语言,VBA编程更多的是针对用户对应用软件中不同对象的操作,触发的相应事件,去编写对相关对象执行不同的方法,或是修改相关对象的属性等操作的代码。

因此在编写VBA程序之前,有必要对相关应用软件中的对象模型作一大概的了解。

  打开PowerPoint的VBA帮助文档VBAPP10.CHM,点击“MicrosoftPowerPoint对象”帮助页面即可看到“PowerPoint对象模型”,从这个模型中很容易找到我们需要的几个集合和对象:

Application、Presentations、Presentation、Slides、Slide、Shapes、shape、Placeholders、PlaceholderFormat、TextFrame、Ruler、TextRange、ParagraphFormat等,其中:

  Application代表整个MicrosoftPowerPoint应用程序。

Application对象包括:

应用程序范围内的设置和选项(例如,当前打印机的名称)

  用于返回顶层对象的属性,例如:

ActivePresentation、Windows等。

  Presentation代表一个PowerPoint演示文稿。

Presentation对象属于Presentations集合中的成员。

Presentations集合中包含所有的Presentation对象,它们分别代表PowerPoint中所有打开的演示文稿。

  Slide代表PowerPoint文稿中的单张幻灯片,Slides集合包含演示文稿中的所有Slide对象。

  Shape代表幻灯片中的单个形状,Shapes集合包含指定幻灯片中的所有Shape对象。

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

Placeholders集合中的每个Shape对象代表一个占位符,占位符可以是文本、图表、表格、组织结构图或其他类型的对象。

如果幻灯片有标题,则标题是集合中的第一个占位符。

  PlaceholderFormat包含专门应用于占位符的属性,例如占位符类型。

  TextFrame代表Shape对象中的文本框。

包含文本框中的文本,还包含控制文本框对齐方式和缩进方式的属性和方法。

  Ruler代表指定形状或指定样式中所有文本的标尺。

包含大纲文本的制表位和缩进设置。

  TextRange包含附加到形状上的文本,以及用于操作文本的属性和方法。

  ParagraphFormat代表文本区域的段落格式。

  3编程说明

  3.1问题的提出

  目前,有很多教学教材都带有电子教案等电子文档,其中大多数为Powerpoint演示文稿。

但原作者所提供的电子教案并不一定就完全适用于使用者,且不说内容上要作适当的修改,就是文稿格式也不一定适合使用者的要求。

内容的修改必须由使用者逐字逐句的斟酌,没法做批量处理;但文稿格式一般固定,即使有差异,也可做个别修改,适合做批量的调整,可以用编程的方式来实现处理的自动化。

  3.2设计分析

  PowerPoint文稿的文本格式,大至可分为这么几块:

标题版式幻灯片中标题的格式,标题和文本版式幻灯片中的标题格式,其他占位符的格式和其他文本框的文本格式,只要能编程控制这些对象的文本格式,PowerPoint文稿中的文本格式基本确定。

因此,必须从PowerPoint对象模型中找出上述对象,并对其相关属性进行修改,以达到控制文本格式的目的。

  标题版式幻灯片中的标题(其PlaceholderFormat对象的Type属性值为:

ppPlaceh-olderCenterTitle)、标题和文本版式幻灯片中的标题(其PlaceholderFormat对象的Type属性值为:

ppPlaceholderCenterTitle)、普通文本框(其Shape对象的Type属性值为:

msoTextBox)中的文本格式所要控制的内容主要包括:

文本字体类型、大小、前景色、粗体、斜体、下划线,行间距,段落前行间距,段落后行间距,对齐方式,缩进格式等。

这些内容可通过TextFrame(文本框)中的TextRange(文本)的Font(字体)和ParagraphFormat(段落格式)的各种属性,以及TextFrame(文本框)中的Ruler(标尺)的各种属性来控制。

下面对所要用到的上述各种属性作一简单介绍:

  ①字体(Font)对象中常用的属性有:

  NameAscii返回或设置用于ASCII字符的字体(字符集编号在0-127之间的字符)。

  NameOther返回或设置亚洲字体名称。

  NameFarEast返回或设置其字符集编号大于127的字符所用的字体。

  Size返回或设置字符大小,以磅为单位。

  Bold决定字符格式是否为粗体。

  Italic决定字符格式是否为斜体。

  Underline决定指定文本是否带有下划线。

  ②段落格式(ParagraphFormat)对象中常用的属性有:

  Alignment用以指定的段落格式为每个段落返回或设置对齐方式。

  BaseLineAlignment为指定段落返回或设置基线对齐方式。

  LineRuleAfter决定是否将每段最后一行后面的行距设为指定的磅数或行数。

  LineRuleBefore决定是否将每段第一行前面的行距设为指定的磅数或行数。

  LineRuleWithin决定是否将基线间的行距设为指定磅数或行数。

  SpaceAfter以磅或行为单位返回或设置指定文本中每段末行后的间距大小。

  SpaceBefore以磅或行为单位返回或设置指定文本中每段首行前的间距大小。

  SpaceWithin以磅或行为单位返回或设置指定文本中基准行之间的距离。

  TextDirection返回或设置指定段落的文本方向。

  WordWrap决定是否自动换行以适应形状内部。

  ③标尺(Ruler)对象中常用的属性有:

  Levels返回一个描述大纲缩进格式的RulerLevels对象。

RulerLevels指定标尺上所有RulerLevel对象的集合。

每个RulerLevel对象代表特定大纲级别上文本的首行缩进和左缩进。

该集合通常包含五个成员(每个可用大纲级别各一个)。

  每个RulerLevel对象上有:

  FirstMargin属性:

以磅为单位返回或设置指定大纲级别的首行缩进。

  LeftMargin属性:

以磅为单位返回或设置指定大纲级别的左缩进。

  3.3程序编写思路

  根据上述分析,可按下述思路编写程序:

  2)使用一个For循环来遍历文稿中的所有幻灯片,循环次数可由Slides集合对象的Count属性取得。

  3)循环体内大致分三块内容,一块用以处理标题版式幻灯片中标题的文本格式,一块用以处理标题和文本版式幻灯片中标题的文本格式,一块用以处理普通文本框中的文本格式。

  4)幻灯片中除标题以外的其他占位符中的文本格式用一个子过程单独进行处理。

  3.4程序清单:

  DimMyDocumentAsObject

  SubMacro1()

  '宏由xxdwww记录,日期:

2006-4-15

  DimiAsInteger,jAsInteger,kAsInteger,mAsInteger,nAsInteger

  n=ActivePresentation.Slides.Count'取得文稿中的幻灯片张数

  Fori=1Ton

  SetMyDocument=ActivePresentation.Slides(i)

  m=MyDocument.Shapes.Placeholders.Count'取得每张幻灯片中的占位符数

  Ifm>0Then

  SelectCaseMyDocument.Shapes.Placeholders

(1).PlaceholderFormat.Type

  CaseppPlaceholderCenterTitle'是标题版式幻灯片中的标题

  '下面是对标题版式幻灯片中标题文本的字体格式进行处理

  WithMyDocument.Shapes.Title.TextFrame.TextRange.Font

  .NameAscii="宋体"

  .NameOther="宋体"

  .NameFarEast="宋体"

  .Bold=True

  .Size=40

  EndWith

  '下面是对标题版式幻灯片中标题文本的段落格式进行处理

  WithMyDocument.Shapes.Title.TextFrame.TextRange.ParagraphFormat

  .Alignment=ppAlignCenter

  .LineRuleWithin=msoTrue

  .SpaceWithin=1

  .LineRuleBefore=msoTrue

  .SpaceBefore=0.2

  .LineRuleAfter=msoFalse

  .SpaceAfter=0

  EndWith

  CallNoTitle(2,m)'调周NoTitle子过程处理其他占位符中的文本格式

  CaseppPlaceholderTitle'是标题和文本版式幻灯片中的标题

  '下面是对标题和文本版式幻灯片中标题文本的字体格式进行处理

  WithMyDocument.Shapes.Title.TextFrame.TextRange.Font

  .NameAscii="宋体"

  .NameOther="宋体"

  .NameFarEast="宋体"

  .Bold=True

  .Size=32

  EndWith

  '下面是对标题和文本版式幻灯片中标题文本的段落格式进行处理

  WithMyDocument.Shapes.Title.TextFrame.TextRange.ParagraphFormat

  .Alignment=ppAlignLeft

  .LineRuleWithin=msoTrue

  .SpaceWithin=1

  .LineRuleBefore=msoTrue

  .SpaceBefore=0.2

  .LineRuleAfter=msoFalse

  .SpaceAfter=0

  EndWith

  CallNoTitle(2,m)'调周NoTitle子过程处理其他占位符中的文本格式

  CaseElse'没有标题

  CallNoTitle(1,m)'调周NoTitle子过程处理其他占位符中的文本格式

  EndSelect

  EndIf

  k=MyDocument.Shapes.Count'取得幻灯片中形状的总数

  '处理幻灯片中除占位符外其他形状中的文本格式(主要是普通文本框)

  Forj=m+1Tok

  IfMyDocument.Shapes(j).Type=msoTextBoxThen

  '下面是对形状中文本的段落格式进行处理

  WithMyDocument.Shapes(j).TextFrame.TextRange.ParagraphFormat

  .Alignment=ppAlignLeft

  .LineRuleWithin=msoTrue

  .SpaceWithin=1.25

  .LineRuleBefore=msoTrue

  .SpaceBefore=0.2

  .LineRuleAfter=msoFalse

  .SpaceAfter=0

  EndWith

  '设置形状的大小为容纳其边界内的文本而自动更改。

  MyDocument.Shapes(j).TextFrame.AutoSize=ppAutoSizeShapeToFitText

  '下面是对形状中文本的首行缩进和左缩进进行处理

  WithMyDocument.Shapes(j).TextFrame.Ruler.Levels

(1)

  .FirstMargin=0

  .LeftMargin=0

  EndWith

  '下面是对形状中文本的字体格式进行处理

  WithMyDocument.Shapes(j).TextFrame.TextRange.Font

  .NameAscii="宋体"

  .NameOther="宋体"

  .NameFarEast="宋体"

  .Bold=True

  .Size=24

  EndWith

  EndIf

  Nextj

  Nexti

  EndSub

  SubNoTitle(n1AsInteger,n2AsInteger)'专门处理非标题占位符中的文本格式子过程

  DimjAsInteger

  Forj=n1Ton2

  '下面是对占位符中文本的段落格式进行处理

  WithMyDocument.Shapes.Placeholders(j).TextFrame.TextRange.ParagraphFormat

  .Alignment=ppAlignLeft

  .LineRuleWithin=msoTrue

  .SpaceWithin=1.25

  .LineRuleBefore=msoTrue

  .SpaceBefore=0.2

  .LineRuleAfter=msoFalse

  .SpaceAfter=0

  EndWith

  '设置占位符的大小为容纳其边界内的文本而自动更改。

  MyDocument.Shapes.Placeholders(j).TextFrame.AutoSize=ppAutoSizeShapeToFitText

  '下面是对占位符中文本的首行缩进和左缩进进行处理

  WithMyDocument.Shapes.Placeholders(j).TextFrame.Ruler.Levels

(1)

  .FirstMargin=0

  .LeftMargin=0

  EndWith

  '下面是对占位符中文本的字体格式进行处理

  WithMyDocument.Shapes.Placeholders(j).TextFrame.TextRange.Font

  .NameAscii="宋体"

  .NameOther="宋体"

  .NameFarEast="宋体"

  .Bold=True

  IfMydocument.Shapes.Placeholders(j).PlaceholderFormat.Type_=ppPlaceholderSubtitleThen

  .Size=32'如果是标题版式幻灯片中的子标题

  Else

  .Size=28

  EndIf

  EndWith

  Nextj

  EndSub

  4总结

  在MicrosoftOffice套件中使用VBA编程,其关健在于理解Office应用软件中的对象和对象模型,以及一个对象在对象模型中的位置。

只有弄清楚了对象模型,才能找到对象在对象模型中的位置,了解对象所具有的方法和属性,并通过编程去调用对象的方法或修改对象的属性,以达到应用程序自动化的目的。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2