PPT VBA编程资料.docx
《PPT VBA编程资料.docx》由会员分享,可在线阅读,更多相关《PPT VBA编程资料.docx(24页珍藏版)》请在冰豆网上搜索。
PPTVBA编程资料
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.Show
EndSub
什么是方法?
方法,就是控件对象进行的操作。
例如:
某对象的显示(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编辑器(或者点击菜单:
工具->宏->VisualBasic编辑器)如下图。
VBA编辑器分为:
菜单区、工程资源管理区、对象编辑区。
1.工程资源管理器。
主要列出每一页幻片(如果该幻灯片存在控件的话,如:
slide1,slide2,slide3...)、窗体、模块等对象信息。
所有列出的信息都以“对象”来称呼。
2.对象编辑区。
当点击“工程资源管理器”中的某一个“对象”时。
在右窗口中打开该对象对其进行设计或代码编辑。
3.控件代码编辑窗口。
当在幻灯片设置了某一个控件,双击控件时,即可打开相应控件的代码编辑窗口,在些处输入VBA程序代码。
输入代码时,一般都是执行Click()事件,如上面。
4.VBA编辑器的菜单。
一般情况下,菜单的功能有很多,但如果用不到的话就可以不理它。
以上用得最多的是“控件代码编辑窗口”及“工程资源管理器”。
六、VBA语言基础知识
任何一种计算机编程语言都有它的各种规则。
规定了“标识符、运算符、数据类型、变量与常量、数组、语句”等规则。
VBA语言也一样。
下面让我们在学习编程之前了解一下这些规则。
(一)标识符
1.定义
标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。
2.命名规则
1)字母打头,由字母、数字和下划线组成,如A987b_23Abc
2)字符长度小于40,(Excel2002以上中文版等,可以用汉字且长度可达254个字符)
3)不能与VB保留字重名,如public,private,dim,goto,next,with,integer,single等
(二)运算符
1.定义:
运算符是代表VB某种运算功能的符号。
1)赋值运算符=
2)数学运算符&、+(字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)
3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)
4)关系运算符=(相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is
5)位运算符Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)
(三)数据类型
VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用Type自定义数据类型。
在通常情况下,不是对数学运算很严格,在制作课件过程中只用到:
字符型、整数型、小数点型。
其它数据类型很少用到,除非制作数学课件例外。
七、VBA常用语句
要想制作的课件具有智能化、交互性强的特点,必须为课件编写一些有用的程序代码,例如,让学生做练习题、判断题等,学生做完练习必须让老师去判断是否对或错。
那么在做课件时,如果能够在课件中加入一些自动分析的程序代码,帮助我们处理一些事情那不是更好吗?
那我们的课件更让学生喜欢。
任何程序都是由4种结构的语句组成,VBA也不例外。
这4种结构分别为:
顺序结构、循环结构、分支结构和模块结构。
下面我们主要介绍前面3种。
(一)顺序结构
顺序结构的程序就是严格按程序编制的顺序执行的。
即是从上而下一行一行执行。
例1:
显示顺序结构的执行
在幻灯片设置一个命令按钮(“顺序结构”),双击命令按钮,输入以下代码:
PrivateSubCommandButton1_Click()
Dima,b,cAsInteger'设置三个变量a,b,c
a=5'给a赋值
b=4'给b赋值
c=2*a+3*b'定义C的表达式
MsgBox"计算C的值是:
"&c'显示信息交互框窗口,并显示C的值
EndSub
顺序很简单,只要从上而下,一句一句编写,每个语句符合书写规则,语句都是根据程序设计目的而写的,这与个人的思维有关,你想出什么样的执行顺序,就会写出什么样的语句来,需要个人经验。
程序一般也可以分为几部分:
第一部分:
变量定义、变量赋初始值
第二部分:
程序主要语句段
第三部分:
程序结束部分,输出语句
(二)分支结构(条件语句)
在编写程序时,有时可能将对不同的条件进行判断,根据条件判断的结束来执行相应的程序。
1.语句格式一:
(单条件判断)If 条件1Then 表达式1
这种格式只有一行,符合条件1则执行表达式1 否则执行这个语句下面一行的其它程序。
例1:
ifx<10thenMsgBox"X的值小于10"
2.语句格式二:
(双条件判断)
If 条件1Then
表达式1
Else
表达式2
Endif
如果条件1成立则执行表达式1否则执行表达式2
例2:
IfX<=10Then ’条件判断开始,如果X<10则输出对话框
MsgBox"X的值在10范围"
Else '其它条件(即X>=10)则输出对话框
MsgBox"X的值超出10的范围"
EndIf ’条件判断结束
例3:
IfA>BAndC A=B+2
Else
A=C+2
Ednif
’A>BAndC ’表达式1或表达式2是指一系列的VBA语句,可以是一句,也可以是多个语句。
3.语句格式三:
(多条件判断)
If条件1Then
表达式1
ElseIF条件2Then
表达式2
...
Else
表达式n
EndIf
例子4:
判断学生成绩
PrivateSubCommandButton3_Click()
DimscoreAsInteger '定义变量score
score=InputBox("输入学生成绩(注意不要输入非数字。
")'输入成绩对话框
Ifscore>=90Then '以下是判断语句,如果score>=90
MsgBox("该生成绩评为:
优秀") '则显示“优秀”对话框
ElseIfscore>=80Then '如果score>=80
MsgBox("该生成绩评为:
良好") '则显示“良好”对话框
ElseIfscore>=60Then '如果score>=60
MsgBox("该生成绩评为:
及格") '则显示“及格”对话框
Else '其它条件
MsgBox("该生成绩评为:
不及格") '则显示“不及格”对话框
EndIf '判断结束
EndSub
备注:
InputBox函数的功能,在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的String;常用格式:
InputBox("显示在对话框中的信息","标题","默认值")。
4.SelectCase...EndSelect语句
格式:
SelectCase变量
Case值1
语句段1
Case值2
语句段2
......
CaseElse
语句段n
EndSelect
这个结构语句,是对“变量”分别判断其值,当为“值1”时,即执行“语句段1”;当为“值2”时,即执行“语句段2”;当所有的值都不符合时,则执行“语句段n”,需要判断多少个值,就编写多少个Case。
(三)循环结构
循环结构分为“当型循环”和“直到型循环”两种。
前者是当条件满足时执行循环体内的语句,后者是进入循环体直到条件不满足时退出。
VBA提供三类循环结构,即DoWhile……Loop、For……Next和While……Wend。
1、DoWhile……Loop循环
这是VBA中最基本的循环语句,当条件表达式为真时,重复执行循环体内的语句。
格式:
DoWhile<条件表达式>
[语句序列1]
[ExitDo]
[语句序列2]
Loop
举例:
I=0
N=10
S=0
DoWhileI<=N
S=S+I
I=I+1
Loop
2、Do……LoopWhile循环
当要求循环体至少执行一次才能结束循环,此时,可以使用Do……LoopWhile循环。
格式:
Do
[语句序列1]
[ExitDo]
[语句序列2]
LoopWhile<条件表达式>
3、DoUntil……Loop循环
当条件表达式不满足时,重复执行循环体内的语句。
与DoWhile……Loop意义相反。
格式:
DoUntil<条件表达式>
[语句序列1]
[ExitDo]
[语句序列2]
Loop
4、Do……LoopUntil循环
执行一次循环体内的语句,然后判断条件是否成立,当条件不成立时继续执行循环体,条件满足则退出。
格式:
Do
[语句序列1]
[ExitDo]
[语句序列2]
LoopUntil<条件表达式>
5、For循环
格式:
For<循环条件>=<循环初值>To<循环终值>[Step<步长>]
[语句序列1]
[ExitFor]
Next
举例:
八、过程与函数
过程是构成程序的一个模块。
简单地说,过程就是为完成一定任务而编的一段程序,用来完成一个相对独立的功能。
过程可以使程序更清晰、更具结构性。
VBA具有四种过程:
Sub过程、Function函数、Property属性过程和Event事件过程。
在做课件过程中,一般情况下,我们可能用到的是Sub过程及Function函数。
(一)Sub过程
Sub过程又称子过程。
语句结构:
Sub