PPTVBA编程一、什么是VBA?直到上世纪90年代早期,使应用程序自动化还是充满挑战性的领域。对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言。例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORDBASIC使WORD自动化,等等。微软决定让它开发出来的应用程序共享一种通用的自动化语言--------VisualBasicForApplication(VBA),可以认为VBA是非常流行的应用程序开发语言VASUALBASIC的子集。实际上VBA是寄生于VB应用程序的版本,VBA和VB的区别包括如下几个方面:1.VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化。2.VB具有自己的开发环境,而VBA必须寄生于已有的应用程序。3.要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的“父”应用程序。尽管存在这些不同,VBA和VB在结构上仍然十分相似。事实上,如果你已经了解了VB,会发现学习VBA非常快。相应的,学完VBA会给学习VB打下坚实的基础。VBA究竟是什么?更确切地讲,VBA是微软在其开发的应用程序中共享的通用自动化语言。它既然是一种自动化语言,它可以使常用的应用实现自动化,可以创建自定义的解决方案。VBA是VisualBasicforApplication的简写,它以VB语言为基础,经过修改并运行在MicrosoftOffice的应用程序,它是不能像VB一样能生成可执行程序的。VBA是MicrosoftOffice系列软件的内置编程语言,是应用程序开发语言VB(VisualBasic)的子集。它功能强大,面向对象,可极大地增加Office系列软件的交互性。二、认识控件对象我们经常看到高手做的多媒体课件中都有许多的按钮、文本框、选项框等之类的工具,使用这些工具会令课件更具有可操作性、交互性等特点。在Powerpoint做课件时,同样提供了一组这样的工具,那叫ActiveX(['aektiv'eks])控件。所谓ActiveX控件就是一种图形对象,可以使用它在Powerpoint演示文稿中控制一组预定义的事件(或执行一段程序代码)。在进行学习VBA编程之前,必须理解这些控件的作用及使用方法。显示控件工具箱:在Powerpoint中选择菜单“视图-工具栏-控件工具箱”,则“控件工具箱”就会出现在powerpoint工作区内。如下图:在制作课件过程中,我们会经常用到的有下面几种控件:标签(Label):用于表现静态文字信息,如显示选择题、判断题的题目等;复选框(CheckBox):是一个选择控件,可用于多项选择题的制作;文本框(TextBox):可以输入文本,用来制作填空题;命令按钮(CommandButton):可用于制作幻灯片上的按钮,还可通过按钮来改变幻灯片的播放顺序,设计超级链接;选项按钮(OptionButton):通常一组使用,只能选中其中一个,用来制作单项选择题或判断题。这是控件的属性,当设置完一个控件后,点击该按钮,就显示该控件的属性窗口。查看代码,当鼠标选中某一个控件时再点击该按钮,即可查看该控件的代码窗口,或在代码窗口中输入一段程序代码。还有其它控件,我们在以后学习到需要时再一一讲解吧。列表框(ListBox)组合框(ComboBox)开关按钮(ToggleButton)数字调节(SpinButton)滚动条(ScrollBar)图像(Image)除了上面几个常用控件外,Windows系统还有许多控件没有列出,在“控件工具箱”最右边那个按钮叫“其它控件”。点击这个按钮,系统就会出现下拉列表,弹出更多的控件让你选择。这些控件很多都没有用到,暂时不谈了。三、控件是如何为我们服务的呢?当设置了控件的属性,该控件本身就确定了个性与特点,但如果不给它做任何东西,这个控件就好象形同摆设,例如,在幻灯片上设置一个“命令按钮”,不管你设置了它的颜色、字体、大小等属性,在幻灯片播放时任你如何用鼠标点击它,它都是没有任何动作,不给你干活。要想让控件给我们干活,那就得给它干活的东西----那就是给控件设置一段程序代码。你给它编写什么样的代码,它就给你干什么样的活。那么,那些代码要放在哪里呢?1、事件例如:当点击了“命令按钮”,屏幕就会执行这个按钮的Click事件,并显示一个对话框,如下图:为什么点击这个“命令按钮”就会显示这个对话框呢?因为在Click事件代码中输入了一行语句,如下(黑色的部分是输入的内容),这个Msgbox语句就是产生一个对话框的效果,而这个语句要能够显示在屏幕上,必须把这个语句代码写入Click事件:PrivateSubCommandButton1_Click()MsgBox你点击了命令按钮,执行了CLICK事件,谢谢你啊!EndSub什么是“事件”?一个事件就是用户在控件对象上所做的一个动作。当系统响应用户的某些动作时,会自动触发事件代码。例如,用户在控件对象上做出单击动作时,系统自动执行为Click事件编写的程序代码。当在幻灯片中设置了一个控件,如“命令按钮”,再用鼠标双击该控件,就会自动进入到VBA代码编辑器,控件默认的事件一般都为控件的Click()事件,Click(点击的意思),我们可以通过代码窗口上面的两个下拉列表选择要编程的对象和该对象的响应事件。如下图:只有通过输入Click事件的代码程序,这些控件才能发挥其强大功能,如果没有给这些控件输入Click事件代码,这个控件只是一个摆设,没有什么作用了。控件常用的事件2、方法例如:当点击了“显示窗体”按钮,屏幕就会出现一个窗体。也就是点击按钮时执行这个按钮的Click事件,在这个事件代码中输入了一句代码(黑色字体是输入代码):PrivateSubCommandButton2_Click()UserForm1.ShowEndSub什么是方法?方法,就是控件对象进行的操作。例如:某对象的显示(Show)方法、隐藏(Hide)方法、清除内容(Clear)方法、复制(Copy)方法,等。上面的例子就是把用户窗体(Userform1)执行“显示(Show)”操作。“方法”与“事件”有相似之处,都是为了完成某个任务,但同一个事件可完成不同任务,取决于您所编的代码是怎样的,而方法则是固定的,任何时候调用都是完成同一个任务,所以其中的代码也不需要我们编了,系统已为我们编好(我们也看不见),只需在必要的时候调用即可。方法的调用:控件名称.方法在方法调用格式中,“控件名称”与“方法”之间必须使用“.”隔开。如:UserForm1.Show在VBA编程中,控件的方法很少,应用时也用得很少,一般在用户窗体的应用中会出现调用窗体的方法比较多。以后在例子中应用到时再分析。四、PPT应用程序对象及其应用在VBA编程中,经常会用到Powerpoint应用程序的对象。这些对象是Office在应用程序中提供给用户访问或进行二次开发使用。哪些对象是什么?又有什么用呢?下面列出一些常用的应用程序对象。其中DocumentWindow对象、SlideShowWindow对象、Slide对象、Shape对象在课件制作过程中会经常用到。1.Application对象该对象代表PowerPoint应用程序,通过该对象可访问PowerPoint中的其他所有对象。(1)Active属性:返回指定窗格是否被激活。(2)ActivePresentation属性:返回Presentation对象,代表活动窗口中打开的演示文稿。(3)ActiveWindow属性:返回DocumentWindow对象,代表当前文档窗口。(4)Presentations属性:返回Presentations集合,代表所有打开的演示文稿。(5)SlideShowWindows属性:返回SlideShowWindows集合,代表所有打开的幻灯片放映窗口。(6)Quit方法:用于退出PowerPoint程序。2.DocumentWindow对象该对象代表文档窗口。使用“Windows(index)”语法可返回DocumentWindow对象。(1)ActivePane属性:返回Pane对象,代表文档窗口中的活动窗格。(2)Panes属性:返回Panes集合,代表文档窗口中的所有窗格。(3)ViewType属性:返回指定的文档窗口内的视图类型。3.Presentation对象该对象代表演示文稿,通过“Presentations(index)”语法可返回Presentation对象。(1)BuiltInDocumentProperties属性:返回DocumentProperties集合,代表演示文稿的所有文档属性。(2)ColorSchemes属性:返回ColorSchemes集合,代表演示文稿的配色方案。(3)PageSetup属性:返回PageSetup对象,用于控制演示文稿的幻灯片页面设置属性。(4)SlideMaster属性:返回幻灯片母版对象。(5)SlideShowSettings属性:返回SlideShowSettings对象,代表演示文稿的幻灯片放映设置。(6)SlideShowWindow属性:返回幻灯片放映窗口对象。(7)AddTitleMaster方法:为演示文稿添加标题母版。(8)ApplyTemplate方法:对演示文稿应用设计模板。4.SlideShowWindow对象该对象代表幻灯片放映窗口。IsFullScreen属性:用于设置是否全屏显示幻灯片放映窗口。5.Master对象该对象代表幻灯片母版、标题母版、讲义母版或备注母版。TextStyles属性:为幻灯片母版返回TextStyles集合,代表标题文本、正文文本和默认文本。6.Slide对象该对象代表幻灯片。(1)SlideID属性:返回幻灯片的唯一标识符。(2)SlideIndex属性:返回幻灯片在Slides集合中的索引号。7.SlideShowView对象该对象代表幻灯片放映窗口中的视图。(1)AcceleratorsEnabled属性:用于设置是否允许在幻灯片放映时使用快捷键。(2)CurrentShowPosition属性:返回当前幻灯片在放映中的位置。(3)DrawLine方法:在指定幻灯片放映视图中绘制直线。(4)EraseDrawing方法:用于清除通过DrawLine方法或绘图笔工具在放映中绘制的直线。(5)GotoSlide方法:用于切换指定幻灯片。8.Shape对象该对象代表绘图层中的对象,例如自选图形、任意多边形、OLE对象或图片。注意:共有三个代表形状的对象:Shapes集合,代表文档中的所有形状;ShapeRange集合,代表文档中指定的部分形状(例如,ShapeRange对象可以代表文档中的第一个和第四个形状,或代表文档中所有选定的形状);Shape对象,代表文档中的单个形状。如果要同时使用多个形状或集合中的形状,请使用ShapeRange集合。以上Powerpoint应用程序对象,如果不需要进行深入的二次开发,大多数对象很少用到,在本课程中,比较常用的对象只有DocumentWindow对象、SlideShowWindow对象、Slide对象、Shape对象。在后面的VBA编程中,我们在应用的时候将会介绍,一般都是写入编程代码中。五、VBA编辑器的使用与操作在powerpoint界面中进行VBA编程有两种方式:录制宏和在VisualBasic编辑器中直接编程。录制宏是将一系列操作过程录下来并由系统自动转换为VBA语句,并保存为一个宏文件。如果操作者需要再次执行与录制的宏完全相同的一系列操作,只需运行刚刚录制完成的宏即可,大大地缩短了操作时间,并可以实现日常工作的自动化。如果要在powerpoint中制作出具有较好交互功能的课件,必须采用第二种方式,即直接在VisualBasic编辑器中进行编程。当我们双击Powerpoint幻灯片中任一控件时,随即打开VBA编辑器(或者点击菜单