word vba 作图相关文件参考.docx

上传人:b****4 文档编号:5465025 上传时间:2022-12-16 格式:DOCX 页数:15 大小:153.43KB
下载 相关 举报
word vba 作图相关文件参考.docx_第1页
第1页 / 共15页
word vba 作图相关文件参考.docx_第2页
第2页 / 共15页
word vba 作图相关文件参考.docx_第3页
第3页 / 共15页
word vba 作图相关文件参考.docx_第4页
第4页 / 共15页
word vba 作图相关文件参考.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

word vba 作图相关文件参考.docx

《word vba 作图相关文件参考.docx》由会员分享,可在线阅读,更多相关《word vba 作图相关文件参考.docx(15页珍藏版)》请在冰豆网上搜索。

word vba 作图相关文件参考.docx

wordvba作图相关文件参考

第十一章利用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与VBA

VBA是基于VisualBasic发展而来的,它们具有相似的语言结构。

VisualBasic是Microsoft的主要图形界面开发工具,VBA5.0(亦即VBA97)则是VisualBasic5.0的子集。

VisualBasic是由Basic发展而来的第四代语言。

VisualBasic作为一套独立的Windows系统开发工具,可用于开发Windows环境下的各类应用程序,是一种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言。

它具有高效率、简单易学及功能强大的特点。

VB的程序语言简单、便捷,利用其事件驱动的编程机制,新颖易用的可视化设计工具,并使用Windows应用程序接口(API)函数,采用动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)以及开放式数据库访问(ODBC)等技术,可以高效、快速地编制出Windows环境下功能强大、图形界面丰富的应用软件系统。

VisualBasic程序很大一部分以可视(Visual)形式实现,这意味着在设计阶段就可以看到程序运行的屏幕画面,用户可以在设计时能够方便地改动画面图像、大小、颜色等,直到满意为止。

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=True

VisualBasic不包含Bold语句和函数,却有一个名为Bold的属性(属性通常指一个对象的特性,例如大小、颜色,或者是否是加粗)。

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模块。

对每个WordBasic语句进行修改,以适应VBA。

转换过的WordBasic宏的功能与编写或录制的新VBA宏相同,但并不完全相同。

下面的示例是一个Word95模板中的WordBasic宏。

SubMAIN()

FormatFont.Name="Arial",.Points=10

Insert"HelloWorld"

EndSub

当该模板在Word2000中打开时,该宏转换为下列代码。

PublicSubMain()

WordBasic.FormatFontFont:

="Arial",Points:

=10

WordBasic.Insert"HelloWorld"

EndSub

转换过的宏中的每个语句以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"

.Size=10

EndWith

Selection.TypeTextText:

="HelloWorld"

EndSub

下面的示例是用Word.Basic对象新建一篇文档,然后插入有效字体的名称。

每个字体名称以与之相应的字体显示。

如:

“楷体,隶书、宋体”。

WithWordBasic

.FileNewDefault

ForaCount=1To.CountFonts()

.Font.[Font$](aCount)

.Insert.[Font$](aCount)

.InsertPara

Next

EndWith

☎11.1.3对象、属性和方法

=11.1.3.1Word对象

VBA与传统宏语言的重要区别之一就在于它是面向对象的。

对象是为了在VBA程序中管理数据和代码的方便提出来的。

在VBA中,对象是封装有数据和代码的客体。

例如,UserForm对象是一个窗口或对话框,用以构成应用的用户界面部分。

Word对象是VBA为Word编程所采取的看待世界的方法。

对象代表一个Word的元素,如文档、段落、书签或单个的字符。

集合是一个对象,该对象包含其他数个对象,通常这些对象属于相同的类型。

例如,一个集合对象中可包含文档中的所有书签对象。

通过使用属性和方法,可以修改单个的对象,也可修改整个的对象集合。

在一个应用程序中,最高级别的对象通常是Application对象,它就是应用程序本身。

例如,在MicrosoftWord对象中的Application对象就是MicrosoftWord本身。

在Application对象中包含了一些其他的对象,例如,在MicrosoftWord的Application对象中包含了cocument、Windows、Selection等对象。

因为Document对象的存在依赖于Word的Application对象的存在,所以此Document对象被称之为Application对象的子对象(Child),反过来,此Application对象被称为Document对象的父对象(Parent)。

许多子对象又有它们自己的子对象。

例如,在MicrosoftExcel中,Documents对象包含了Document对象,或者说,它是Document对象的父对象,一个父对象可以拥有多个子对象;例如,Word的Windows对象拥有Panes、Selection以及Object等子对象。

同样,一个子对象也可以拥有多个父对象;例如,Word的Windows集合对象同时是Application对象和Document对象两者的子对象。

对象组成应用程序的方法彼此之间按照它们被分开的内容的功能又相互联系起来,这叫做对象的分层结构(Objecthierarchy)或是对象的模型(Objectmodel),如图11-1所示为MicrosoftWord对象的结构模型图。

图11-1对象结构模型图

属性是对象的一个特性或者该对象操作的一个方面。

例如,文档属性包含名称、内容、保存状态,以及是否启用修订。

要设置一个属性的值,可在对象的后面带一个句号、属性名、一个等号和新的属性值。

下面的示例在“MyDoc.doc”文档中启用修订。

Documents("MyDoc.doc").TrackRevisions=True

在本例中,Documents引用由打开的文档构成的集合,而“MyDoc.doc”识别集合中的一篇文档,为该文档设置了TrackRevisions属性。

方法是对象可以进行的动作。

例如,可打印一篇文档,因而Document对象也具有PrintOut方法。

方法通常都具有参数,指明动作是如何进行的。

下面的示例是打印活动文档的前三页。

ActiveDocument.PrintOutFrom:

=1,To:

=3

在大多数情况下,方法是动作,而属性是性质。

使用方法可使对象发生某些事情,而使用属性则可返回对象的信息,或者引起对象的某个性质的更改。

可以利用对象与对象集的属性(Properties)和方法(Methods)对对象进行操作。

关于属性与方法的概念在下一节介绍。

操作对象首先应调用该对象,可以有以下两种方法:

●显示调用方法(Callingitexplicitly)。

要根据该对象在对象模型中的明确位置进行指向。

●隐示调用方法(Callingitimplicitly)。

不必指出对象在对象模型中的位置,只需确保此操作不会引起混淆与错误。

例如,你要调用某文档对象,对此进行操作,如果能确定该文档是Word当前(激活)文档,就可以直接对此进行操作,不会发生混淆,因为Word中当前文档是唯一的。

显示调用方法需要较多的代码,但不易混淆;隐示调用方法代码少,但容易混淆,应用时应该慎重。

=11.1.3.2对象的属性、方法和事件

方法指的是对象能执行的动作。

如果对象共享共同的方法,则可以操作整个对象集合。

例如,下列的过程会关闭所有打开的窗体。

SubCloseAll()

Forms.Close

EndSub

又例如,Add是属于ComboBox对象的一个方法,因为它会增加一个新项到下拉式列表框中。

下面的程序使用Add方法,增加一个新的工程到ComboBox中。

SubAddEntry(newEntryasString)

Combo1.AddnewEntry

EndSub

属性定义了对象的特征,诸如大小、颜色或屏幕位置,或某一方面的行为,诸如对象是否有激活或可见的。

可以通过修改对象的属性值来改变对象的特性。

若要设置属性值,则在对象的引用后面加上一个复合句,它是由属性名加上等号(=)以及新的属性值所组成的。

例如,下面的过程通过设置窗体中的Caption属性来更改VisualBasic窗体的标题。

SubChangeName(newTitle)

myForm.Caption=newTitle

EndSub

有些属性并不能设置。

每一个属性的帮助主题,会指出是否可以设置此属性(读与写),或只能读取此属性(只读),还是只能写入此属性(只写)。

可以通过属性的返回值,来检索对象的信息。

下列的过程使用一个消息框来显示当前活动文档的标题,它显示在当前活动窗体顶部。

SubGetFormName()

formName=Screen.ActiveForm.Caption

MsgBoxformName

EndSub

事件是一个对象可以辨认的动作,像单击鼠标或按下某键等,并且可以写某些代码针对所述动作来做响应。

用户做动作或程序代码的结果可能导致事件的发生,或是由系统引发。

&11.2使用VisualBasic编辑器

上面已经讲到,Word在VBA编程语言中把宏录制为一系列的Word命令,然后在VisualBasic编辑器中打开已录制的宏,修改其中的指令。

也可用VisualBasic编辑器创建包括VisualBasic指令的非常灵活和强有力的宏,而那些指令是无法采用录制的方法的。

在Word中打开VisualBasic编辑器的方法是:

指向【工具】菜单中的【宏】菜单项,然后从其级联菜单中单击【VisualBasic编辑器】命令,即可打开如图11-2所示的VisualBasic编辑器。

图11-2VisualBasic编辑器

注意:

如果用此命令打不开VisualBasic编辑器,说明文档和Normal模板可能已经被宏病毒感染了,因为一般的宏病毒都会把【VisualBasic编辑器】命令屏蔽。

此时可以把当前用户的Normal模板删除,用没有被感染的Normal代替或者不要Normal模板,然后再重新打开Word,就可以打开VisualBasic编辑器。

下面简单介绍一下VisualBasic编辑器的方法。

☎11.2.1利用好窗口

VisualBasic编辑器中根据不同的对象,设置了不同的窗口。

如果能恰当地使用这些窗口,可以使编程效率有极大的提高。

VisualBasic编辑器中主要的窗口包括代码窗口、立即窗口、本地窗口、对象浏览器、工程资源管理器、属性窗口、监视窗口以及工具箱和用户窗体窗口等。

=11.2.1.1【代码】窗口

可以使用【代码】窗口来编写、显示以及编辑VisualBasic【代码】。

打开各模块的代码窗口后,可以查看不同窗体或模块中的代码,并且在它们之间做复制以及粘贴的动作。

如图11-3所示。

图11-3【代码】窗口

可以按照下列所述的方式,来打开【代码】窗口:

●在工程窗口中,可以选择一个窗体或模块,然后选择【查看代码】按钮

●在【用户窗体】窗口中,可以双击控件或窗体;也可以从【视图】菜单中选择【代码窗口】,或者按下F7键。

在【代码】窗口中可以将所选文本拖动到当前代码窗口中的不同位置,也可以拖动到其他的【代码】窗口或者立即窗口以及监视窗口,甚至【回收站】中。

在【代码】窗口中,左上角的下拉列表框为【对象】框,用来显示所选对象的名称。

用户可以按下列表框中的右边箭头,来显示此窗体中的对象。

【对象】框右边的下拉列表框为【过程/事件】框,它列出了【窗体】或【对象】框所含控件中的所有VisualBasic的事件。

当选择了一个事件,则与事件名称相关的事件过程就会显示在代码窗口中。

如果在【对象】框中显示的是【通用】,则【过程】框会列出所有声明,以及为此窗体所创建的常规过程。

如果正在编辑模块中的代码,则【过程】框会列出所有模块中的常规过程。

在上述两实例中,在【过程】框中所选的过程都会显示在代码窗口中。

模块中的所有过程会出现在一个单一滚动条的列表中,它们是按名称的字母来排列的。

可以从代码窗口上端的下拉式列表中选取一个过程,此时指针会移到所选过程的第一行代码上面。

将拆分栏向下拖放,可以将代码窗口分隔成两个水平窗格,两者都具有滚动条。

可以在同一时间查看代码中的不同部分。

显示在对象框以及【过程/事件】框中的信息,是以当前拥有焦点的窗格之内的代码为准。

将拆分栏拖放到窗口的顶部或下端,或者双击拆分栏,都可以关闭一个窗格。

代码窗口的左边的灰色区域为边界标识条,在此会显示出边界标识,在边界标识条上单击鼠标,可以在对应的行上添加断点。

单击【过程查看】图标,可以显示所选的过程,同一时间只能在【代码】窗口中显示一个过程。

单击【全模块查看】图标,显示模块中全部的代码。

=11.2.1.2【立即窗口】

【立即窗口】在中断模式时会自动打开,且其内容是空的。

用户可以在窗口中执行如下操作:

●键入或粘贴一行代码,然后按下Enter键来执行该代码。

●从【立即窗口】中复制并粘贴一行代码到【代码】窗口中,但是【立即窗口】中的代码是不能存储的。

【立即窗口】在调试程序过程中非常有用,用户如果要测试某个语法或者查看某个变量的值,就需要用到【立即窗口】。

因为在【立即窗口】中,输入一行语句后按Enter键即可执行,如图11-4所示。

图11-4在【立即窗口】中输入一条语句与运行的结果

【立即窗口】可以拖放到屏幕中的任何地方,除非已经在【选项】对话框中的【可连接的】选项卡内,将它设定为停放窗口。

可以按下关闭框来关闭一个窗口。

如果关闭框不是可见的

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1