您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 11利用VBA提高工作效率
《中文Word2000高级教程》第十一章利用VBA提高工作效率第1页共38页第十一章利用VBA提高工作效率VisualBasicforApplications(简称VBA)是新一代标准宏语言,是基于VisualBasicforWindows发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA程序代码。这样用户可以容易地将日常工作转换为VBA程序代码,使工作自动化。因此,对于在工作中需要经常使用Office套装软件的用户,学用VBA有助于使工作自动化,提高工作效率。另外,由于VBA可以直接应用Office套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。11.1VBA基础VisualBasic的应用程序版(VBA)是Microsoft公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft可编程应用软件所共享。在没有VBA以前,一些应用软件如Excel、Word、Access、Project等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门去学习,它们之间互不兼容,使得应用软件之间不能在程序上互联。拥有一种可跨越多个应用软件,使各应用软件产品具有高效、灵活且一致性的开发工具是至关重要的。VBA作为一种新一代的标准宏语言,具有上述跨越多种应用软件并且具有控制应用软件对象的能力,使得程序设计人员仅需学习一种统一的标准宏语言,就可以转换到特定的应用软件上去,程序设计人员在编程和调试代码时所看到的是相同的用户界面,而且VBA与原应用软件的宏语言相兼容,以保障用户在代码和工作上的投资。有了VBA以后,多种应用程序共用一种宏语言,节省了程序人员的学习时间,提高了不同应用软件间的相互开发和调用能力。在Office2000中,宏语言VBA适用于所有应用程序,包括Word、Excel、PowerPoint、Access、Outlook以及Project。在Office97的各应用程序中,新增了VisualBasic编辑器。这样,用户无论是在Excel中,还是在Word中以至是在Access中建立和管理VBA都具有统一的方法和标准。在介绍如何利用VBA提高工作效率之前,首先介绍一些与VBA有关的基础知识。11.1.1VB与VBAVBA是基于VisualBasic发展而来的,它们具有相似的语言结构。VisualBasic是Microsoft的主要图形界面开发工具,VBA5.0(亦即VBA97)则是VisualBasic5.0的子集。VisualBasic是由Basic发展而来的第四代语言。VisualBasic作为一套独立的Windows系统开发工具,可用于开发Windows环境下的各类应用程序,是一种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言。它具有高效率、简单易学及功能强大的特点。VB的程序语言简单、便捷,利用其事件驱动的编程机制,新颖易用的可视化设计工具,并使用Windows应用程序接口(API)函数,采用动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)以及开放式数据库访问(ODBC)等技术,可以高效、快速地编制出Windows环境下功能强大、图形界面丰富的应用软件系统。VisualBasic程序很大一部分以可视(Visual)形式实现,这意味着在设计阶段就可以《中文Word2000高级教程》第十一章利用VBA提高工作效率第2页共38页看到程序运行的屏幕画面,用户可以在设计时能够方便地改动画面图像、大小、颜色等,直到满意为止。VB的用户可以是缺乏Windows及C语言开发经验的专业软件人员,也可以是具有一定Windows开发经验的专业人员,VB的可视化编程方法使得原来繁琐枯燥、令人生畏的Windows应用程序设计变得轻松自如、妙趣横生。以往的Windows应用程序开发工具在设计图形用户界面时,都是采用编程的方法,并伴随大量的计算任务,一个大型应用程序约有90%的程序代码用来处理用户界面,而且在程序设计过程中不能看到界面显示的效果,只有在程序执行时才能观察到,如果界面效果不佳,还需要回到程序中去修改。VisualBasic提供了新颖的可视化设计工具,巧妙地将Windows界面设计的复杂性封装起来,程序开发人员不必再为界面设计而编写大量程序代码,仅需采用现有工具按设计者要求的布局,在屏幕上画出所需界面,并为各图形对象设置属性即可,VB自动产生界面设计代码,这样便将事先编制好的控件可视地连接到一起,构成一个随时可调整的界面。VBA不但继承了VB的开发机制,而且VBA还具有与VB相似的语言结构,它们的集成开发环境IDE(IntergratedDevelopmentEnvironment)也几乎相同。但是,经过优化,VBA专门用于Office的各应用程序。VB可运行直接来自Windows95或NT桌面上的应用程序,而VBA的项目(Project)仅由使用VBA的Excel、Word、PowerPoint等称为宿主(Host)的Office应用程序(Application)来调用。11.1.2WordBasic和VisualBasic在Word中,为完成具体的任务,所用的是WordBasic命令。WordBasic是从VBA扩展而来的一种专用于处理Word自动功能的语言,下面介绍它们在概念上的区别和它们的宏的相互转换。11.1.2.1WordBasic和VisualBasic在概念上的区别VBA和WordBasic之间主要的区别是WordBasic语言包含由大约900个命令组成的一张平面列表,而VisualBasic则包含了由对象组成的一个分层结构,每个对象都可提供一组特定方法和属性(与WordBasic中的语句和函数相似)。大多数WordBasic命令在任何时候都可运行,而VisualBasic只在特定的时候提供有效对象的方法和属性。注意:本书提到的VisualBasic如果不加特别说明,都是指VisualBasicForApplications。对象是VisualBasic这一宏伟大厦的基石,在VisualBasic中进行的几乎任何操作都与修改对象有关。Word的任何元素(如文档、段落、域、书签等),都可以用VisualBasic中的对象来代表。与平面列表中的命令不同,部分对象只能通过其他对象才能加以访问。例如,可以通过不同的对象(如Style、Selection和Find对象)来访问Font对象。应用加粗格式的编程任务就表明了两种编程语言之间的区别。下面的WordBasic指令对所选内容应用加粗格式。下面的示例是VisualBasic语句,也是对所选内容应用加粗格式。Selection.Font.Bold=TrueVisualBasic不包含Bold语句和函数,却有一个名为Bold的属性(属性通常指一个对《中文Word2000高级教程》第十一章利用VBA提高工作效率第3页共38页象的特性,例如大小、颜色,或者是否是加粗)。Bold是Font对象的一个属性。同样地,Font是返回一个Font对象的Selection对象的一个属性。按照下面的对象结构,可以生成指令,以将加粗格式应用于所选内容。Bold属性是一个Boolean类型、可读写的属性。这意味着可以将Bold属性设置为True或False(真或假),也可返回当前值。下面WordBasic指令的返回值表明是否将加粗格式应用于所选内容。x=Bold()下面的示例是VisualBasic语句,返回所选内容的加粗格式的状态。x=Selection.Font.Bold要在VisualBasic中执行一个任务,就需要确定合适的对象。例如,如果用户想应用【字体】对话框中的字符格式,可使用Font对象。然后需要确定如何理顺从Application对象到Font对象的Word对象结构,以找到包含需要修改的Font对象的对象。在确定了该对象的路径之后(例如,Selection.Font),可使用VisualBasic编辑器中的【对象浏览器】、【帮助】或【自动列表成员】之类的功能来确定可将什么属性和方法应用于该对象。11.1.2.2将WordBasic宏转换为VisualBasic宏可使任务自动化,如果在Word中重复进行某项工作,可用宏使其自动执行。宏是将一系列的Word命令和指令组合在一起,形成一个命令,以实现任务执行的自动化。用户可创建并执行一个宏,以替代人工进行一系列费时而重复的Word操作。事实上,它是一个自定义命令,用来完成所需任务。宏的一些典型应用如:加速日常编辑和格式设置、组合多个命令、使对话框中的选项更易于访问、使一系列复杂的任务自动执行等。Word提供了两种创建宏的方法:宏录制器和VisualBasic编辑器。宏录制器可帮助用户开始创建宏。Word在VBA编程语言中把宏录制为一系列的Word命令。可在VisualBasic编辑器中打开已录制的宏,修改其中的指令。也可用VisualBasic编辑器创建包括VisualBasic指令的非常灵活和强有力的宏,这些指令无法采用录制的方式。当第一次进行下列任何操作时,Word2000将自动转换Word6.x或Word95模板中的宏。打开该模板。基于该模板创建一篇新文档。使用【工具】菜单中的【模板】命令将模板附加给一篇文档。在转换宏时,在状态栏会显示一条信息。转换结束后,必须保存模板,以保存转换后的宏。如果不保存模板,那么下次使用该模板时,Word会再次转换这些宏。宏里面的每个WordBasic语句和函数都转换为相应的WordBasic方法。转换过程将每个宏都转换为VisualBasic模块。如要查看转换过的宏,可在【工具】菜单上将鼠标指向【宏】,并单击【宏】命令。在【宏】对话框中的宏名称显示为macroname.Main,其中Main指转换宏中的主子程序(该子程序在以前版本的Word中以SubMAIN开头)。要编辑转换过的宏,可选择一个宏名,单击【编辑】按钮,就可在VisualBasic编辑器中显示该VisualBasic模块。《中文Word2000高级教程》第十一章利用VBA提高工作效率第4页共38页对每个WordBasic语句进行修改,以适应VBA。转换过的WordBasic宏的功能与编写或录制的新VBA宏相同,但并不完全相同。下面的示例是一个Word95模板中的WordBasic宏。SubMAINFormatFont.Name=Arial,.Points=10InsertHelloWorldEndSub当该模板在Word2000中打开时,该宏转换为下列代码。PublicSubMain()WordBasic.FormatFontFont:=Arial,Points:=10WordBasic.InsertHelloWorldEndSub转换过的宏中的每个语句以WordBasic属性(WordBasic属性返回一个自动化对象【Word.Basic】,该对象包含了在Word6.0和WordforWindows95中所有可用的WordBasic语句和函数的方法)开头。WordBasic是Word2000对象模型中的一个属性,该模型返回一个对象及所有的WordBasic语句和函数;该对象使得在Word2000中运行WordBasic宏成为可能。注意:如果在保存该模板时覆盖原来的模板,则该WordBasic宏会永久地丢失,并且以前版本的Word也不能使用转换过的宏。Word97中的宏在Word2000中像在Word97中一样使用而无需转换。下面的VisualBasic宏与以前的WordBasic宏的功能相同,但是没有使用WordBasic属性。PublicSubMain()WithSelection.Font.Name=Arial
本文标题:11利用VBA提高工作效率
链接地址:https://www.777doc.com/doc-4072369 .html