p>一、vba的发展过程
在office中包含着一种加强office功能的语言,即为basic语言。 经过发展,在office97 中,word、excel、access、powerpoint四个软件都有了自己的程序设计语言,分别称为microsoft wordvisualbasic、microsoftexcelvisualbasic、microsoftaccessvisualbasic、microsoft powerpointvisualbasic。通常统一称为vba。在outlook中的开发语言为visualbasicscripting edition,而不是一个完全的vba。不过,visualbasicscriptingedition是vba的一个较小 的子集,它与vba兼容。当然,有一些vba支持的特性,visualbasicscriptingedition并不 支持。
二、vba开发特点
1.microsoftoffice对象模型
visualbasic是一种面向对象的开发语言。vba 将microsoftoffice中的每一个应用程序都看成一个对象。每个应用程序都由各自的application 对象代表。
在word中,application对象中包容了word的菜单栏、工具栏、word命 令等的相应对象,以及文档对象等等。菜单栏对象中包容了所有的菜单及菜单命令。工具栏对 象中包容了各种命令按钮。文档对象中则包容了所有的文字、表格、图像等文档组成部分的相 应对象。文档对象是microsoftwordvisualbasic中的主要对象。
在excel中, application对象中包容了excel的菜单栏、工具栏等的相应对象,以及工作表对象和图表对 象等等。工作表对象和图表对象是microsoftexcelvisualbasic中的主要对象。
在access 中,application对象中包容了access的菜单栏、工具栏等的相应对象,以及报表对象和窗体 对象等等。报表对象和窗体对象是microsoftaccessvisualbasic中的主要对象。
在power point中,application对象中包容了powerpoint的菜单栏、工具栏等的相应对象,以及演 示文档对象等等。演示文档对象是microsoftpowerpointvisualbasic中的主要对象。
2. 基于对象的开发
(1)使用microsoftoffice对象
office已经具有 了强大的功能,office的对象模型使得可以使用microsoftoffice中的对象来完成自己的工 作。程序员可以不必浪费时间开发自己的组件,只需充分地利用office的功能。office开发 者可以在office的基础上进行自己的开发,而不必一切从头开始。例如,office开发者可以使 用word的拼写检查器,而不必自己来开发一个拼写检查器。
(2)用户创建对象
office 开发者可以在office对象 唇ㄗ约旱亩韵螅嚎梢源唇ㄗ约旱牟说ズ凸ぞ呃福砑拥絆ffice 的对象集合中;可以创建一个窗体,并且在窗体中添加控件,等等。例如,在word中,可以往自 动更正的词库中添加自己的词条。
3.vba开发office的功用
有人 也许觉得office的功能已经足够强大了,是否还有必要使用vba来开发office。的确,即使根 本不用编写一句语句,office就可以完成用户所能遇到的各种任务。但是,人们对效率的追求 是永不满足的,这就是使用vba来开发offic的原动力。
(1)vba可以使office任 务自动化
在使用office的过程中,往往要遇到一些重复性的系列工作,特别是在 处理大批量的文档或数据时。通过录制宏或使用visualbasic编写宏,使一系列的工作只需 要一个指令便能完成,这就成倍地提高了工作效率。
(2)vba可以定制office满 足自己的需要
office是一个功能异常庞杂的软件包,对某一用户来所说,许多 命令可能一辈子也用不着,而另外一些命令可能得经常使用。有时候,功能复杂反而显得多余。
另外,office的外观显得异常的繁杂,许多用户面对如此繁杂的界面往往手足无 措。
通过vba可以设置自己的界面,把自己经常用到的菜单命令和工具栏放置到 显眼的地方,隐藏一些不常用的菜单或工具栏,并且,可以把自己所编写的宏设置为菜单命令 或设置为工具栏中的命令按钮,方便了使用。
并且,可以根据自己的需要来定制office 的功能,满足自己的需要。
(3)vba可以增强office的功能
office 的功能虽然强大,但它不可能考虑到所有情况,而且情况是千变万化的,各种情况都有特定的 要求。
通过vba可以增强office的功能,以处理各种各样的任务。例如,可以设置word 拼写检查的词库;可以往词库中添加新的词语;可以设置自动更正,设置自己经常遇到的误拼 等。
(4)vba可以增强office与用户的交互
在office中,可以利用visual basic创建窗体,并在窗体中添加控件等用户接口元素。通过用户接口,应用程序可以得到用 户的请求,并对其作出响应。
(5)vba可以集成office的功能
office 不是几个软件的简单组合,而成为一个有机的整体发挥巨大的作用。visualbasic提供了集 成office的功能的一种手段。
通过ole(对象的链接和嵌入)和dde(动态数据交换) 技术的使用可以集成office的功能。例如,利用visualbasic,可以在word文档中链接excel 数据表,调用excel来对该数据进行处理。在excel中处理该数据表,得到结果也要刷新word文 档中的数据表,保持了数据的更新。这时的文档确切地说应该是一个复合文档。
ole 自动化技术则提供了一种在应用程序中控制源文档的方法。ole自动化的优点是,在单一的环 境中工作,同时可以使用其他应用程序的功能。
在microsoftoffice环境中,利 用visualbasic开发应用程序时,可以利用ole自动化组合microsoftoffice中的多个应用 程序,建立自动化应用程序。microsoftoffice提供了大量的材料,只需把它们拼凑起来。
三、 简单开发实例:<
字符统计程序
<
有时候,要对某字符在文档中的出现次数进行统计。要完成这一任务,可以在word中开发 一程序来较快地统计。<
打开要统计的文档后,在文本框中输入要统计的字符,如“ok!”,然后选择是否区分大小 写,单击“确定”按钮,便可以进行统计了。
设计该程序的步骤如下:
1 .新建一窗体userform1,窗体的caption属性设置为“字符统计”。窗体中包容以下控件:
复 选框控件checkbox1caption=“区分大小写"
命令按钮控件commandbutton1 caption=“确定"
标签控件label1caption=“输入您要统计的字符:"
2.在单击命令按钮控件commandbutton1后便执行统计工作,代码如下:
private subcommandbutton1_click()<
dimcountofappearasinteger<
selection.wholestory<
withselection<
.find.clearformatting<
with.find<
.text=userform1.textbox1.text<
ifuserform1.checkbox1.value=truethen<
.matchcase=true<
else<
.matchcase=false<
endif<
.execute<
endwith<
endwith<
ifnotselection.find.found()then<
msgbox“未找到"<
exitsub<
endif<
whileselection.find.found()<
countofappear=countofappear+1<
selection.find.execute<
wend<
msgbox“找到了"&countofappear&“个"<
endsub
讲解:首先用语句selection.wholestory选定全文。
使用selection.find.execute 语句进行一次对字符的查找操作,如下:
withselection<
.find.clearformatting<
with.find<
.text=userform1.textbox1.text<
ifuserform1.checkbox1.value=truethen<
.matchcase=true<
else<
.matchcase=false<
endif<
.execute<
endwith<
endwith
上述语句中使用find对象的clearformatting方法作用是清除任何为 进行查找或替换操作所指定的格式,相当于“编辑”菜单“查找和替换”对话框中的“不限定格 式”按钮。
另外,matchcase属性设置查找操作是否区分大小写。
如果 没有找到,则弹出一消息框,告知没有找到,并退出子程序,语句为:
ifnotselection.find.found() then<
msgbox“未找到"<
exitsub<
endif
如果找到一处,然后进行下一次查找,以下如此循环,每找到一次countofappear 变量便加1,来代表指定字符在文档中出现的次数,语句为:
whileselection.find.found()<
countofappear=countofappear+1<
selection.find.execute<
wend
在程序中selection.find.found()函数用来知道是否找到指定的字符。
最后,弹出一个消息框来告知字符在文档中出现的次数。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器