当前位置:文档之家› vba开发实用指南

vba开发实用指南

vba开发实用指南
vba开发实用指南

VBA开发实用指南

VBA(Visual Basic for Application)是Office自带的二次开发工具,可为日常办公带来极大的便利。本文讲述Office各个成员VBA开发的常用对象和其相关的属性、方法和事件(包括Word、Excel、PowerPoint等),并给出相关的实例代码。

一、VBA基础

1.什么是VBA

在Office对于一些烦琐、重复的操作,用户可以通过“宏”来实现。“宏”即是由一系列命令和指令组合而成的命令集,其本质是VBA代码组成的程序。VBA是微软在其开发的应用程序中共享的通用自动化语言。

2.录制/运行宏

VBA初期开发可通过录制“宏”的操作来获取代码,在Office中几乎所有的操作均可通过录制“宏”来获取代码。这里,我们通过一个简单的“宏”录制实例来学习:在Word中将所有的“电脑”字样替换为“计算机”,并插入一张4行2列的表格。

在Office中录制宏,可单击“工具→宏→录制新宏…”菜单命令实现,单击该命令后将出现“录制宏”对话框,如图1所示。

其中,“宏名”框用于为录制的宏设置名称,可使用默认的“Macro1”。“工具栏”和“键盘”二个按钮分别用于设置宏的触发位置。“将宏保存在”框可设置宏的保存位置,一般包括“Normal.dot”(共用模板)和当前文档2种,建议保存在当前文档中,以免对所有文档产生影响。在“说明”框中可输入对该宏的相关说明。单击“确定”按钮,即可开始录制宏。此时在文档编辑界面中将显示“宏录制”工具栏。该工具栏有2个与录音机非常类似的按钮,第一个按钮为“停止录制”,第二个按钮为“暂停录制”。在录制过程中可随时通过这二个按钮来进行控制。

随后按常规操作来实现前述的任务,操作完成后单击“停止录制”按钮,结束录制即可。

注意:录制“宏”时可使用鼠标单击菜单和按钮,但无法录制鼠标在文档窗口中的移动,因此必须通过键盘来实现这些动作。此外,Office中所有录制的“宏”,其名称的首字符必须为字母或汉字、数字及下划线(名称最多可为255个字符),且“宏”名称中不允许包含空格。

运行已录制的“宏”,可单击“工具→宏→宏”菜单命令。在出现的“宏”对话框的“宏名”下拉框中选择需运行的宏,然后单击“运行”按钮即可。随后Word将自动重现前述执行的操作,避免了重复的办公操作。

3.宏的局限性

虽然Office的大部分操作均可用录制“宏”的方法来保存,但录制的“宏”仅“忠实”地再现了特定的操作,对于一些需要进行逻辑判断和流程控制的操作,则显得力不从心,如自动替换多个不同的内容时,按录制“宏”的方式操作,需要按替换内容的数量录制多个“宏”,且每个“宏”仅可用于某个内容的替换,反而为工作增添了麻烦。

录制“宏”存在很多局限性,除无法进行逻辑判断和流程控制操作外,还包括很多。如交互能力较差、无法显示Office的内置对话框、无法显示用户自定义的窗体和无法创建复杂的工具栏或修改菜单等。

4.VBA编辑环境

虽然“宏”存在很多局限性,但通过录制“宏”获取了VBA代码后即可通过VBA编辑器来为代码添加逻辑控制并设计流程等。以Word 2002为例,“宏”录制完成后,可在运行宏对话框中选择录制的宏并单击“编辑”按钮,即可显示VBA编辑环境,如图2所示。

VBA编辑环境由工程资源管理器、属性窗口和代码编辑/窗体设计窗口等部分组成。在工程资源管理器中列出当前打开的所有VBA项目,属性窗口用于设置相关对象的属性,代码编辑/窗体设计窗口则可输入模块的代码或编辑窗体和类模块。

二、VBA开发共用对象详解

VBA和其他面向对象的开发语言类似,同样有非常多的对象组成,且不同的Office成员即提供了大量的开发对象,如工具栏、Office助手、内置对话框和窗体等。

(一)工具栏及其控件对象

在Office中通过VBA开发工具栏和菜单,需使用Office提供的CommandBar、CommandBarButton、CommandBarComboBox等对象,这些对象即代表工具栏、工具栏按钮和工具栏下拉框,通过这些对象可编制出各类复杂的工具栏或菜单。

https://www.doczj.com/doc/908853967.html,mandBars集合

该集合代表Office所有的工具栏,可用名称或索引号指定菜单栏或工具栏,但仅可用名称指定一个菜单、快捷菜单或子菜单。如两个或两个以上自定义菜单或子菜单名称相同,则返回第一个具有该名称的对象。

其Add方法用于新建一个工具栏,并返回 CommandBar对象。

语法:expression.Add(Name, Position, MenuBar, Temporary)

参数说明:

Name为可选的Variant 类型,代表新工具栏的名称。如果省略,则使用默认的名称;Position为可选的Variant 类型,代表新工具栏的位置。该参数值可通过VBA常量进行设置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom常量(设置新工具栏位于软件工具栏中位置);msoBarFloating常量(代表新工具栏可移动);msoBarPopup常量(代表新工具栏为快捷菜单)等;MenuBar为可选的Variant 类型,用于设置是否用新工具栏替换活动工具栏;Temporary为可选的Variant 类型,用于设置新工具栏是否暂时有效。

https://www.doczj.com/doc/908853967.html,mandBar对象

该对象代表应用程序中的工具栏,新建工具栏的控件均以该对象为载体。

(1)Controls属性:返回CommandBarControls对象,代表指定工具栏中的所有控件。

(2)NameLocal属性:返回由应用程序版本语言所设置的工具栏名称,如对软件的内置工具栏设置会出现错误。

(3)Position属性:返回或设置工具栏的位置,值可通过VBA常量进行设置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup或msoBarMenu等。

(4)Type属性:返回或设置工具栏的类型,值可通过VBA常量进行设置,如msoBarTypeNormal(工具栏为普通类型)、msoBarTypeMenuBar(工具栏为菜单类型)、msoBarTypePopup(工具栏为弹出菜单类型)等。

(5)Reset方法:将内置工具栏重置为默认设置,在恢复软件原有工具栏或菜单时非常有用。重置内置工具栏将删除其中的自定义控件并恢复其内置控件。

https://www.doczj.com/doc/908853967.html,mandBarControls集合

该集合代表工具栏中的所有工具栏控件。

其Add方法用于在CommandBarControls集合中增加一个工具栏控件。

https://www.doczj.com/doc/908853967.html,mandBarControl对象

该对象代表工具栏控件,对自定义工具栏控件,可使用 CommandBarButton、CommandBarComboBox和CommandBarPopup对象进行定义,而对软件内置的控件进行操作,而该控件又无法使用上述三个对象表示,则可使用CommandBarControl对象。

(1)BeginGroup属性:用于设置工具栏控件是否分组显示。

(2)Caption属性:用于设置工具栏控件的标题文字,并可作为默认的控件屏幕提示。

(3)Id属性:用于设置CommandBarButton、CommandBarComboBox和CommandBarControl对象的功能,这些控件可直接设置为内置工具栏控件的ID,这样该控件即具备了软件内置的相应功能,自定义控件的ID属性均需设置为1。

(4)Copy方法:将工具栏控件复制到已有的工具栏中。

2.Balloon对象

该对象代表气球,助手可在该气球中显示标题、文字和一些控件,通过NewBalloon属性可返回Balloon对象,且任意时刻仅有一个气球可视。

(1)BalloonType属性:用于设置助手所用的气球类型,可通过常量赋值。创建Balloon对象时,初始值为msoBalloonTypeButtons常量。

(2)Button属性:用于设置助手气球底部按钮类型。创建Balloon对象时,初始值为msoButtonSetOK。

(3)Icon属性:用于设置助手气球左上角的图标类型,可通过常量赋值。

(4)Checkboxes属性:返回BalloonCheckboxes集合,即气球中的所有复选框。

(5)Heading属性:用于设置助手气球中的标题。气球标题和文本均支持包含下划线和系统调色板16色的文字。

如需显示包含下划线的文字,可通过“{ul}”、“{ul 1}”语法来开始下划线和“{ul 0}” 语法来清除下划线;如需改变文字颜色,可通过“{cf number}”语法,其中number常数为系统调色板支持的16种颜色。

(6)Labels属性:返回BalloonLabels 集合,即气球中的所有标签。

(7)Mode属性:用于设置气球的模态,即是否在显示气球的同时允许用户在程序中继续工作。

(8)Text属性:用于设置助手在气球标签、复选框或直接显示部分的文字。

(9)Close方法:用于关闭活动的非模态气球,仅在回调过程中才可使用。

(10)Show方法:用于显示指定的气球对象。

3.BalloonCheckBox对象

该对象代表气球中的复选框控件。

Checked属性:返回是否已选择气球中的指定复选框。

(三)内置对话框对象

Office使用了大量的内置对话框,在Word和Excel中提供了开发接口,使开发者可充分利用内置对话框实现很多操作,尤其在Word中可使用多种方法显示内置对话框,实现不同的功能需求,这里,我们以Word的内置对话框为例进行讲解。

1.Dialogs集合对象

该集合对象代表Word或Excel中的Dialog对象集合,其中每个Dialog对象均代表一个内置对话框,无法在Dialogs集合中创建新的内置对话框,也无法添加对话框。

2.Dialog对象

该对象代表内置对话框。

(1)CommandName属性:用于返回显示指定内置对话框对应的过程名。

(2)DefaultTab属性:用于设置显示指定对话框时,其被激活的选项卡。

(3)Display方法:用于显示指定的内置对话框,并直至用户关闭该对话框或超时,使用显示内置对话框时,不会执行任何操作(即仅用于显示),但可返回用户关闭对话框时所单击的按钮代号。

其中,返回-2,代表“关闭”按钮;返回-1,代表“确定”按钮;返回0,代表“取消”按钮;返回大于 0的值,则1代表第一个按钮,2代表第二个按钮,以此类推。

(4)Execute方法:用于应用内置对话框的当前设置。

(5)Show方法:用于显示并执行内置对话框,即如同用户通过菜单或工具栏打开对话框,和Display方法相同,均返回用户关闭对话框时所单击的按钮代号。

(6)Update方法:用于更新内置对话框的参数值。

3.显示内置对话框

通过VBA代码可控制内置对话框的显示,如需调用指定的内置对话框,可将Dialogs属性通过常量进行赋值,如“Dialogs(wdDialogFileOpen).Show”可显示Word的“打开”对话框。

在前述代码中,如将该语句的返回值赋予Dialog变量,即可通过该变量返回或设置对话框的选项,代码如下所示:

Set testDialog = Dialogs(wdDialogFileOpen)

合理使用内置对话框可实现很多的功能,Word和Excel中提供接口的内置对话框非常多,限于篇幅,本文不做详细介绍,读者可参考VBA的联机帮助。

(四)窗体和相关控件对象

VBA的编辑器和VB非常类似,因此也提供了窗体和相关的控件,但又由于Office的特点使VBA中的窗体、控件和VB存在一些差异。

1.用户窗体知识点

窗体是程序实现和用户交互的接口,通过窗体不仅可改善程序的界面友好性,而且可进一步增强、完善程序的功能。在VBA编辑器中可创建用户窗体,在工程资源管理器中右键单击项目,在出现的菜单中选择“插入→用户窗体”命令,随后在设计界面中将显示默认窗体和控件工具箱,该控件工具箱和VB的控件工具箱很类似,如图3所示。

2.用户窗体常用控件

虽然VBA窗体开发所用的控件和VB较为类似,但其属性和方法和VB存在一定的差异:

(1)标签控件:该控件用于显示不可编辑的文本,默认属性为Caption属性,默认事件为Click事件。

(2)文本框控件:该控件用于显示可编辑的文本信息,是VBA开发中最常用编辑控件,默认属性为Value属性,默认事件为Change事件。

(3)复合框控件:该控件将列表框和文本框进行结合,用户可进行输入和列表框选择操作,默认属性为Value属性,默认事件为Change事件。

(4)列表框控件:该控件用于显示值列表,用户可选择一个或多个列表项,VBA中的列表框可通过列表形式和选项按钮或复选框的形式使用,默认属性为Value属性,默认事件为Click 事件。

(5)复选框控件:该控件用于显示选择的状态,即允许用户从两个值(如True或False)中选择一个。如选择则将显示标记,默认属性为Value属性,默认事件为Click事件。

(6)选项按钮控件:该控件用于显示多选项中每一项的选择状态,默认属性为Value属性,默认事件为Click事件。

(7)切换按钮控件:该控件用于显示选择状态,默认属性为Value属性,默认事件为Click 事件。

(8)框架控件:该控件用于创建功能或视觉角度的控件组,默认事件为Click事件。

(9)命令按钮控件:该控件用于启动、结束或中断操作,其Click事件是窗体编程中最常用的事件代码,默认属性为Value属性,默认事件为Click事件。

(10)表头控件:该控件用于将一系列相关控件显示为一个多表的集合,默认属性为SelectedItem属性,默认事件为Change事件。

(11) 多页控件:该控件用于将多页面的内容以单个控件的方式实现,在处理不同类别的大量信息时很有用,默认事件为Change事件。

(12)滚动条控件:该控件用于按滚动块位置,返回或设置变量值,默认属性为Value属性,默认事件为Change事件。如需创建横向或纵向的滚动条,可在窗体设计时横向或纵向拖动滚动条控制点。

(13)旋转按钮控件:该控件用于增加及减少变量数值,默认属性为Value属性,默认事件为Change事件。

(14)图像控件:该控件用于显示图片,其支持的图片文件格式包括:bmp、cur、gif、ico、jpg和wmf等,默认事件为Click事件。

在VBA窗体设计中,可将一些开发中使用的控件全部选择后,直接拖至工具箱中,工具箱会添加一个“控件组”,在窗体设计中可直接将该控件组放置于窗体,大大提高了效率(该特点

为VBA所独有)。

如开发者需使用VBA标准控件箱未提供的其他控件,可右键单击工具箱,在出现的菜单中选择“附加控件”命令,在出现的对话框中进行选择即可。

3.用户窗体常用事件

用户窗体的常用事件和VB窗体有一定的区别。

(1)Initialize事件:该事件发生在加载对象后和显示对象前,通常在该事件中初始化变量值或设置控件的属性。

(2)QueryClose事件:该事件发生在用户窗体关闭前,通常在该事件中检查用户窗体中未完成的操作。

cancel参数:整型,如将该参数设置未非零值,则可阻止关闭用户窗体。

Closemode参数:该参数用于获取触发QueryClose事件的原因。

(3)Terminate事件:该事件将所有引用的对象变量设置为Nothing常量,即删除对象的引用。该事件发生在卸载对象后。如非正常退出程序,则不会触发。

(五)类模块

VBA开发也提供了类模块结构,使开发者可将常用操作通过类进行合理封装,实现代码的复用和程序的结构化。

1.创建类模块

VBA中创建类模块非常简单,在VBA编辑器的工程资源管理器中右键单击项目,在出现的菜单中选择“插入→类模块”命令,随后在“工程资源管理器”中会出现添加的类模块,默认名称为“类1”,单击该类模块,可设置其属性,一般需设置其“Name”属性,以方便使用。双击该类模块,即可按窗体的操作方法来输入代码。

2.类模块常用事件

类模块中包含Initialize和Terminate二个事件。

(1)Initialize事件:该事件用于初始化类模块所用的数据。当程序中创建类模块时触发该事件。

(2)Terminate事件:当程序中类实例从内存删除时触发该事件,且该事件仅在程序正常结束时触发。

三、Office XP开发对象知识详解

VBA程序的开发主要由大量的对象组成。这里,我们精选了常用的Office VBA开发常用对象的知识,以方便读者速查。

(一)Word 2002开发对象

1.Application对象

该对象代表 Word 应用程序,通过该对象可访问Word中的其他所有对象。

(1)ActiveDocument属性:返回Document对象,代表活动文档。

(2)ActivePrinter属性:返回或设置当前打印机的名称。

(3)ActiveWindow属性:返回Window对象,代表活动窗口。

(4)Documents属性:返回Documents集合,代表所有打开文档。

(5)Selection属性:返回Selection对象,代表已选择的范围或插入点。

(6)Windows属性:返回Windows集合,代表所有文档窗口。

(7)Activate方法:用于激活指定的对象。

(8)PrintOut方法:打印全部或部分的文档。

(9)Quit方法:用于退出Word程序。

2.Document对象

该对象代表Word中打开的文档。通过“Documents(index)”的语法可获取Document对象,

其中index参数代表文档的名称或索引号,此外还可用ActiveDocument属性获取当前编辑的文档。

(1)AttachedTemplate属性:返回Template对象,代表活动文档关联的模板。

(2)BuiltInDocumentProperties属性:返回DocumentProperties集合,代表指定文档的所有内置属性,如作者、主题或关键词等。

(3)Characters属性:返回Characters集合,代表文档中的字符。

(4)Tables属性:返回Tables集合,代表文档中所有的表格。

(5)CheckGrammar方法:检查字符串是否存在语法错误。

(6)CheckSpelling方法:用于检查字符串是否存在拼写错误。

(7)ComputeStatistics方法:用于获取指定文档的统计数据,如字数、页数等。

(8)PrintPreview方法:在打印预览和视图方式间进行切换。

(9)Save方法:用于保存文档或模板。

(10)Undo方法:用于撤消文档的最后一次操作。

3.Bookmark对象

该对象是Bookmarks集合中的元素,代表文档中的书签。通过“Bookmarks( index )”的语法可获取Bookmark对象,其中index参数代表书签名称或索引号。

(1)Select方法:用于选择指定的书签。

(2)Delete方法:用于删除指定的书签。

4.Field对象

该对象是Fields集合中的元素,代表文档中的域。通过“Fields(index) ”的语法可获取Field对象。

5.Template对象

该对象是Templates集合中的元素,代表文档模板。通过“Templates(index)”的语法可获取Template对象。

6.FontNames对象

该对象代表有效的字体名称列表。通过FontNames、LandscapeFontNames 或PortraitFontNames属性可获取FontNames对象。

7.Options对象

该对象代表 Word 的应用程序和文档选项。

8.AutoTextEntries集合对象和AutoTextEntry对象

AutoTextEntries集合对象由AutoTextEntry对象组成,代表模板中所有的“自动图文集”词条。AutoTextEntry对象代表单一的“自动图文集”词条。

Insert方法:用于在指定的范围中通过插入“自动图文集”词条的方式来替换原内容。

9.Selection对象

该对象代表当前文档的选择内容,可为区域或插入点,每个文档仅有一个 Selection对象,且任意时刻仅可激活一个Selection对象,通过Selection属性可获取Selection对象。

(1)Text属性:返回或设置所选内容中的文本。

(2)Copy方法:将指定对象复制到剪贴板。

(3)Paste方法:将剪贴板内容粘贴至选择区域。

(4)TypeParagraph方法:用于插入新段落,等同于在编辑时按回车键。

(5)TypeText方法:用于插入指定的文本。

(6)WholeStory方法:用于扩展选择内容,并包含整个文字部分。

(7)GoTo方法:将插入点移至指定位置。

(8)HomeKey方法:等同于按下“Home”键。

(9)EndKey方法:等同于按下“End”键。

(二)Excel 2002开发对象

1.Application对象

该对象代表Excel应用程序,通过该对象可访问Excel中的其他所有对象。

(1)ActiveCell属性:返回Range对象,代表活动窗口或指定窗口的活动单元格。

(2)ActiveChart属性:返回Chart对象,代表活动图表。

(3)ActiveSheet属性:返回WorkSheet对象,代表活动工作簿中的活动工作表。

(4)ActiveWorkbook属性:返回Workbook对象,代表活动的工作簿。

(5)Cells属性:返回 Range对象,代表活动工作簿中所有单元格。

(6)Charts属性:返回Sheets集合,代表活动工作簿中所有图表。

(7)Range属性:返回Range对象,代表单元格或单元格区域。

(8)Sheets属性:返回Sheets集合,代表当前工作簿的所有工作表。

(9)StatusBar属性:返回状态栏的文本。

(10)Workbooks属性:返回Workbooks集合,代表所有打开的工作簿。

(11)Worksheets属性:返回Sheets集合,代表活动工作簿的所有工作表。

(12)Calculate方法:用于对指定区域的单元格进行计算。

(13)Evaluate方法:用于将字符串的值进行转义操作,即可将以字符串表示的运算式进行求解的操作。

(14)InputBox方法:用于显示接收输入的对话框,并返回对话框中输入的信息。

(15)Quit方法:用于退出Excel应用程序。

2.AddIn对象

该对象代表加载宏,通过“AddIns(index)”语法可返回AddIn对象,其中index参数为加载宏标题或编号。

FullName属性:返回加载宏的文件名。

3.Chart对象

该对象代表工作簿中的图表,包括嵌入式图表和单独的图表。

(1)ChartArea属性:返回ChartArea对象,代表指定图表中的全部图表区域。

(2)ChartTitle属性:返回ChartTitle对象,代表指定图表的标题。

(3)ChartType属性:返回或设置图表的类型。

(4)DataTable属性:返回DataTable对象,代表图表数据表。

(5)Walls属性:返回Walls对象,代表三维图表的背景墙。

4.Workbook对象

该对象代表工作簿。

(1)Styles属性:返回Styles集合,代表指定工作簿的所有样式。

(2)Add方法:用于新建工作簿,并将其设置为活动工作簿。

(3)Open方法:用于打开工作簿。

(4)OpenText方法:用于载入文本文件,并将其进行分列处理,然后在工作表中插入经过分列处理的文本数据。

5.Worksheet对象

该对象代表工作表,通过“Worksheets(index)”的语法可获取Worksheet对象,其中index 参数工作表索引号或名称。

(1)AutoFilter属性:用于设置是否进行筛选。

(2)UsedRange属性:返回Range对象,代表指定工作表中的已用区域。

(3)PrintOut方法:用于打印指定的对象。

(4)PrintPreview方法:将切换之打印预览视图。

(5)Select方法:用于选择指定的对象。

6.Range对象

该对象代表选择区域,是Excel开发中一个常用的对象。

(1)Address属性:返回对指定区域的引用名称。

(2)Areas属性:返回Areas集合,代表多重选择区域中的所有区域。

(3)Column属性:返回第一块指定区域中的第一列的序号。

(4)Columns属性:返回Range对象,代表指定区域中的所有列。

(5)ColumnWidth属性:返回或设置指定区域中所有列的列宽。

(6)Formula属性:用于设置Range对象使用的公式。

(7)MergeArea属性:返回Range对象,代表指定单元格的合并范围。

(8)MergeCells属性:返回区域中是否包含合并单元格。

(9)NumberFormat属性:返回或设置指定对象的格式代码。

(10)Row属性:返回第一块指定区域中的第一行的序号。

(11)Rows属性:返回Range对象,代表指定区域中的所有行。

(12)Activate方法:用于激活对象。

(13)ApplyNames方法:用于将名称应用于指定的单元格。

(14)AutoFill方法:用于对指定的单元格进行自动填充。

(15)AutoFit方法:用于将列宽和行高调整为适当值。

(16)Find方法:用于在区域内查找特定信息,并返回代表第一个包含所查找信息的单元格。

(17)Merge方法:用于从指定的Range对象中创建合并单元格。

(18)Replace方法:用于在指定区域内查找和替换。

(19)Subtotal方法:用于创建指定区域内的分类汇总。

(三)PowerPoint 2002开发对象

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方法:用于切换指定幻灯片。

四、VBA综合开发实例温馨贺卡向导

(一)例程分解

本例程是一个简单的贺卡向导,可直接运行并可辅助生成简单的贺卡。程序主界面与Word 的标准向导程序类似,单击“上一步”和“下一步”按钮或直接单击窗体左侧的切换按钮均可直接跳转至相应步骤。单击“取消”按钮将关闭向导窗体,如图4所示。

单击“下一步”按钮切换至下一页,在该页面中可选择贺卡的节日并输入发送者和接受者的姓名,如图5所示。

单击“下一步”按钮切换至下一页,在该页面中可输入贺词,如图6所示。

单击“下一步”按钮切换至向导程序的末一页,单击“完成”按钮即可生成文档。生成的文档将包含将用户在前述步骤中填写的信息,生成一份简单的贺卡。

(二)程序知识点

1.向导的编制原理

向导程序的本质即前述的Word模板文件(DOT文件),唯一区别在于其扩展名为“WIZ”,因此编制向导程序首先需编制模板并调试代码,在调试无误后将扩展名改为“WIZ”即可。向导编制的常规步骤如下所述:

(1)创建向导所需的自动图文集:向导所需的自动图文集是包含书签的自动图文集,最后生成文档时即调用了预保存的图文集,而在Word中用于定位的书签对象,可在需填写输入内容的位置上帮助程序实现定位并替换。该步骤是编制向导程序的关键。

(2)编辑窗体和模块:向导程序需通过窗体来实现交互功能,因此通过合理运用控件,完全可设计出美观易用的窗体,然后对窗体的控件进行事件编程,实现流程控制。窗体设计完毕后,需通过模块来保存通用的功能,常用的功能包含生成文档、替换书签和删除书签等。

(3)设置向导程序入口:向导程序需通过特定的事件来触发,建议在“ThisDocument”对象的“New”事件中输入调用向导程序入口的代码。Document对象的事件包括New事件(在创建基于模板的文档时触发。按功能分析,向导程序入口即通过该事件执行)、Open 事件(在打开文档时触发)和Close事件(在关闭文档时触发)。

2.界面设计知识点

(1)向导程序需逐步引导用户,因此建议使用多页控件(MultiPage)实现界面切换。

(2)VBA的窗体设计中未提供类似VB的控件数组功能,因此需访问Controls集合对象来控制一些外观和功能均类似的控件。

(3)由于从前述知识点可得向导程序本质为模板文件,因此开发者可直接打开Word已提供的向导程序(如“实用文体向导”等),然后通过工程资源管理器导出其界面窗体,然后在此基础上进行参考和修改,可大大提高编制的效率。

(4)Controls集合:窗体的Controls集合代表其包含的全部控件。Controls集合中的每个控件均有唯一的索引,也可通过控件名称来引用。在向导程序中,为有效地控制功能和外观均类似的控件(如切换按钮),可通过名称引用来枚举访问窗体的Controls集合,即可控制这些控件。

(5)多页控件:多页控件(MultiPage)是Pages集合的容器,每个多页控件均包含一个或多个Page对象,其常用属性和方法如下:

Value属性:为多页控件默认属性,返回当前活动页面的索引号,从“0”开始编号,依此类推。

Style属性:用于设置多页控件标签的显示风格,在向导中建议设置为“2”(即不显示表头)。

(6)Page对象:该对象代表多页控件的页面。每个 Page对象均可放置不同的控件,以实现多界面切换的效果,第一个Page对象默认名称为“Page1”,其常用属性和方法如下:Picture属性:用于设置页面的背景图片。

PictureTiling属性:用于设置是否平铺图片。

PictureSizeMode属性:用于设置显示背景图片的方式。

(三)程序实现步骤

1.创建向导所需的自动图文集

通过前述内容可得创建向导所需的自动图文集是关键的步骤,因此首先在编辑界面中输入相关的文字,然后在需插入内容的位置添加书签,最后选择全部内容,以“hk”命名并保存于模板的自动图文集中。如图7所示:

2.编制窗体

在VBA编辑器的工程资源管理器中添加窗体,放置多页控件、标签、文本框、列表框等控件(也可采用前述的导入并修改的方法来设计窗体),由于该窗体使用的控件较多,限于篇幅,不在逐一介绍,可按效果图自行设计,本文仅对一些需在代码中使用的控件进行介绍。

首先切换至多页控件的第二页,该页面中需编程的控件位置和名称如图8所示:

如图8所示,其中“frmHKWiz”为用户窗体,“Page1”为多页控件的页面对象,“txtfsz”和“txtjsz”均为文本框控件,“shpMap0”至“shpMap3”、“lblMap0”至“lblMap3”均为Label控件,“lstjr”为列表框控件。切换至多页控件的第三页,该页面中需编程的控件位置和名称如图9所示:

如图9所示,其中“Page2”为多页控件的页面对象,“shpChartPath”为标签控件,“txthc”为文本框控件,“cmdCancel”、“cmdBack”、“cmdNext”和“cmdFinish”均为命令按钮控件。

窗体界面设计完毕后,切换至代码编辑窗口,首先输入常量声明,代码如下所示:

'代表页面数量

Const P_Count = "3"

'标签名称的常量

Const Const_LBL = "lblMap"

'标签名称的常量

Const Const_SHP = "shpMap"

然后输入公共变量,代码如下所示:

'用于保存当前页面编号的变量

Dim indexPanel As Integer

输入自定义的过程代码,如下所示:

'初始化控件的过程

Private Sub init_Controls()

With lstjr

.AddItem "圣诞节"

.AddItem "中秋节"

.AddItem "国庆节"

End With

End Sub

'切换页面的过程

Private Sub changepage(iNewPanel As Integer)

If indexPanel = iNewPanel Or fWizardCallBack Then

Exit Sub

End If

'通过Controls集合对象来实现页面切换效果

frmHKWiz.Controls(Const_SHP & indexPanel).BackColor = vbWhite frmHKWiz.Controls(Const_LBL & indexPanel).FONTBOLD = False indexPanel = iNewPanel

frmHKWiz.Controls(Const_SHP & indexPanel).BackColor = vbGreen frmHKWiz.Controls(Const_LBL & indexPanel).FONTBOLD = True mpgWizardPage.Value = indexPanel

End Sub

最后输入各控件的事件代码,如下所示:

'用于模拟切换按钮的标签单击事件

Private Sub lblMap0_Click()

changepage (0)

End Sub

Private Sub lblMap1_Click()

changepage (1)

End Sub

Private Sub lblMap2_Click()

changepage (2)

End Sub

Private Sub lblMap3_Click()

changepage (3)

End Sub

Private Sub shpMap0_Click()

changepage (0)

End Sub

Private Sub shpMap1_Click()

changepage (1)

End Sub

Private Sub shpMap2_Click()

changepage (2)

End Sub

Private Sub shpMap3_Click()

changepage (3)

End Sub

Private Sub shpMap4_Click()

changepage (4)

End Sub

'“上一步”按钮单击事件

Private Sub cmdBack_Click()

If indexPanel > 0 Then

changepage (indexPanel - 1)

End If

End Sub

'“下一步”按钮单击事件

Private Sub cmdNext_Click()

If indexPanel < P_Count Then

changepage (indexPanel + 1)

End If

End Sub

'“取消”按钮单击事件

Private Sub cmdCancel_Click()

'关闭窗体

Unload Me

End Sub

'“完成”按钮单击事件

Private Sub cmdFinish_Click()

Application.ScreenUpdating = False

'调用模块中创建文档的过程,即窗体和模块的接口过程

CreateNewDoc (True)

End Sub

'窗体初始化事件

Private Sub UserForm_Initialize()

indexPanel = 0

mpgWizardPage.Value = 0

changepage (0)

init_Controls

End Sub

3.编制模块

模块用于保存向导程序中公用的代码,在工程资源管理器中添加标准模块,命名为“Common”,然后输入代码(也可模仿窗体的导入操作,将Word提供的向导程序包含的模块导入,参考并使用其中的很多过程),如下所示:

'启动向导,即向导程序的入口

Public Sub StartWizard()

'显示窗体

frmHKWiz.Show

End Sub

'创建新文档的过程,通过“fDummy”参数可使该Public类型的过程不在Word的“宏”列表中出现。

Public Sub CreateNewDoc(fDummy As Boolean)

Application.ScreenUpdating = False

'设置鼠标为“等待”形状

System.Cursor = wdCursorWait

'获取向导程序的模板

Set objWizTemplate = ActiveDocument.AttachedTemplate

Application.DisplayAutoCompleteTips = True

'插入已创建的自动图文集

ActiveDocument.AttachedTemplate.AutoTextEntries("hk").Insert Selection.Range, True

ActiveDocument.Select

'调用替换书签的过程,将窗体中输入的内容在文档中进行替换

ReplaceBookmark "jr", frmHKWiz.lstjr.Text

ReplaceBookmark "fsz", frmHKWiz.txtfsz.Text

ReplaceBookmark "jsz", frmHKWiz.txtjsz.Text

ReplaceBookmark "hc", frmHKWiz.txthc.Text

'设置新文档的属性

With ActiveDocument

.SpellingChecked = True

.GrammarChecked = True

.UndoClear

End With

Application.DisplayAutoCompleteTips = True

Selection.HomeKey wdStory

'恢复默认鼠标形状

System.Cursor = wdCursorNormal

Application.ScreenUpdating = True

'关闭窗体

Unload frmHKWiz

'调用删除所有书签的过程

deleteallbookmark

End Sub

'替换书签内容的过程

Private Sub ReplaceBookmark(which As String, what As String)

If Len(what) = 0 Then

what = ""

End If

'选择指定的书签

Selection.GoTo what:=wdGoToBookmark, Name:=which

'替换内容

Selection.TypeText what

End Sub

'删除所有书签的过程

Private Sub deleteallbookmark()

Dim bm As Bookmark

'遍历所有的书签

For Each bm In ActiveDocument.Bookmarks

'删除书签

bm.Delete

Next

End Sub

4.设置向导入口

代码编写完毕后,在工程资源管理器中切换至“ThisDocument”对象,输入事件代码,如下所示:

Private Sub Document_New()

'调用模块(Common)中启动向导的过程

Common.StartWizard

End Sub

5.后续工作

向导程序编制、调试无误后,可将其扩展名改为“WIZ”,然后搜索“Normal.dot”文件所在的文件夹,并将该向导程序放置于该目录,随后启动Word XP后即可在“模板”窗体的“常用”栏中显示该向导的图标。

Excel+vba入门教程

VBA入门系列讲座 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动 化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用excel的宏语言来使excel自动化,使用word BASIC使word自动化,等等.微软决定让它开 发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是”寄生于”VB应用程序的版本.VBA和VB的区别包括如下 几个方面: 1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(excel 等)自动化 2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序. 3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序 是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的”父”应用程 序,例如excel. 尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解 了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在excel中用VBA创建解决方案后,即已具备在word access OUTLOOK 中用VBA创建解决方案的大部分知识. FOXPRO PROWERPOINT VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化. VBA可以称作excel的“遥控器”. VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案. 此外,如果你愿意,还可以将excel用做开发平台实现应用程序. 1.2 Excel环境中基于应用程序自动化的优点 也许你想知道VBA可以干什么?使用VBA可以实现的功能包括: 1. 使重复的任务自动化. 2. 自定义excel工具栏,菜单和界面. 3. 简化模板的使用. 4. 自定义excel,使其成为开发平台. 5. 创建报表. 6. 对数据进行复杂的操作和分析.

Excelvba入门教学教程

VBA 入门系列讲座 1.1 VBA 是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动 化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用excel 的宏语 言来使excel 自动化,使用word BASIC 使word 自动化,等等.微软决定让它开发出 来的应用程序共享一种通用的自动化语言 -------------------------- V isual Basic For Application (VBA ),可以认为VBA 是非常流行的应用程序开发语言 VASUAL BASIC 的子集.实际上VBA 是”寄生于”VB 应用程序的版本.VBA 和VB 的区别包 括如下几个方面: VB 是设计用于创建标准的应用程序,而VBA 是使已有的应用程序(excel 等)自动化 VB 具有自己的开发环境,而VBA 必须寄生于已有的应用程序. 要运行VB 开发的应用程序,用户不必安装VB,因为VB 开发出的应用程 序是 可执行文件(*.EXE ),而VBA 开发的程序必须依赖于它的”父”应用 程序, 例如excel. 尽管存在这些不同,VBA 和VB 在结构上仍然十分相似.事实上,如果你已经了 解了 VB,会发现学习VBA 非常快.相应的,学完VBA 会给学习VB 打下坚实的基 础.而且,当学会在excel 中用VBA 创建解决方案后,即已具备在 word access OUTLOOK FOX PRO P ROWER POINT 中用VBA 创建解决方案的大部分知识. VBA 一个关键特征是你所学的知识在微软的一些产品中可以相互转化 . VBA 可以称作excel 的“遥控器”. VBA 究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动 化,可以创建自定义的解决方案. 此外,如果你愿意,还可以将excel 用做开发平台实现应用程序. 1.2 Excel 环境中基于应用程序自动化的优点 也许你想知道VBA 可以干什么?使用VBA 可以实现的功能包括: 使重复的任务自动化. 自定义excel 工具栏,菜单和界面. 简化模板的使用. 自定义exceI 使其成为开发平台. 创建报表. 对数据进行复杂的操作和分析. 1. 2. 3. 1. 2. 3. 4. 5. 6.

Excel VBA基础教程两篇

Excel VBA基础教程两篇 篇一:Excel VBA基础教程 Excel VBA教程是把VB编程应用在Excel平台的一套实用教程,Excel +VBA双剑合壁,他可以帮助我们实现Excel原本实现不了的功能,可以让工作变得更高效,可以让操作变得变方便,可以把重复性的操作变得更有趣,随心所欲的定制自己的工作平台,还可以针对企业来开发各种系统如,人事管理系统、仓库系统、进存销系统等,对于经常要处理大量数据工作的朋友,学会了这套VBA教程你的工作将游刃有余。 标题 Excel VBA基础教程 Excel VBA基础教程 第一章:Excel VBA基础知识 1-1、Excel VBA教程简介 1-2、宏在工作中的运用

1-3、Excel VBA基础 1-4、Excel VBA窗口介绍 1-5、Excel VBA代码编写规则1-6、对象 1-7、属性 1-8、方法 1-9、常量与变量 1-10、数据类型 1-11、判断语句之IF 1-12、判断语句IF之多条件1-12B、If条件判断小结

1-13、判断语句之SELECT 1-14、循环语句之DO...LOOP 1-15、循环语句之DO...LOOP实例 1-16、循环语句之DO WHILE...LOOP 1-17、循环语句之DO UNTIL...LOOP 1-18、循环语句之WHILE与UNTIL位置变化1-18B、DO...LOOP 语法小结 1-19、.循环语句之FOR EACH...NEXT 1-20、循环语句之FOX...NEXT 1-20B、For...NEXT小结与实例 1-21、用语句FOR...NEXT制作九九乘法表

excel VBA编程入门教程

excel VBA编程入门教程 回看到“excel 编程入门教程”求助贴,不料被别人捷足先登。没想到今天又看到这个求助经 验贴,而且又有优先评优支持当然要领取了。本人也算上个世纪的编程老鸟,虽然对于当前 的主流技术不是非常精通,但是对于Excel VBA,还是略知一二的。下面就来和大家分享一 下Excel VBA编程入门经验。 工具/原料 熟练操作Excel,有一定得VB编程经验,别说你的电脑没装office啊步骤/方法 点击Windows左下方,“开始”-“程序” -“Microsoft Office”-"Microsoft Office Excel 2003", 打开Excel,如下图示。 点击按下图所示,点击菜单“工具”-“宏”-“Visual Basic 编辑器”

然后会出现“Visual Basic 编辑器”窗体,如下图示 你已经启动了VB编程环境,这就是你的编程平台。 按下图所示,点击“Visual Basic 编辑器”中的菜单“插入”-“用户窗体”

接着出现“可编辑窗体”,如下图所示 上图,红色框中所示为“可编辑窗体”,你可以在上面进行可视化编程,就类似于我们现实生活中的画布,你可以在窗体上通过左侧绿色框内的“工具箱”绘制命令按钮、文字框、标签等编程控件。你也可以通过鼠标点击红色框中窗体外围的8个的操作手柄,拖动窗体的大小,直观形象的进行可视化编程。操作手柄如下图示

红色圈内的句点就是操作手柄。当然,你也可以对窗体的显示的文字进行调整,这就需要在最左侧的属性窗口中修改它的“Caption”属性,考虑到这时编程入门,仅仅是教大家一个简单的编程流程,所以我就不多废话了。 接着,用鼠标单击左侧“工具箱”内的“命令按钮控件”,如下图所示 此时,鼠标光标会变成一个“十字准星”和“命令按钮”状,因鼠标形状无法截图,此处就不贴图了。你可以用鼠标拖动,在可编辑窗体上绘制一个任意大小的命令按钮。如下图示: 同样,这个“命令按钮”四周也有8个操作手柄,你可以用鼠标来调整它的大小。 最关键的时刻到了,马上就可以进行编程了。用鼠标双击“命令按钮CommandButton1”,会出现如下窗口

ACAD VBA初级教程

ACAD VBA初级教程第一课:入门 1.为什么要写这个教程 市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。 2.什么是Autocad VBA? VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。 3、VBA有多难? 相信大家都知道Basic是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。 4、怎样学习VBA? 介绍大家一个学习公式:信心+恒心=开心。仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。 5、现在我们开始编写第一个程序:画一百个同心圆 第一步:复制下面的红色代码 第二步:在模型空间按快捷键Alt+F8,出现宏窗口 第三步:在宏名称中填写C100,点“创建”、“确定” 第四步:在Sub c100()和End Sub之间粘贴代码 第五步:回到模型空间,再次按Alt+F8,点击“运行” Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0

For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆 Next i End Sub 也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。 第二课编程基础 本课主要任务是对上一课的例程进行详细分析 下面是源码: Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆 Next i End Sub 先看第一行和最后一行: Sub C100() …… End Sub C100是宏的名称,也叫过程名称,当用户执行C100时程序将运行sub和end sub之间的所有指令。 第二行: Dim cc(0 To 2) As Double '声明坐标变量 后半段“'声明坐标变量”自动变为绿色字体,它是代码语句的注释,它不会影响程序运行,它的作用是告诉阅读者程序员的想法。对于简单的程序,一般不需要写注释,如果要编写非常复杂的程序,最好要多加注

Excel_VBA数组入门教程集合

Excel VBA数组入门教程集合 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已。 2. 数组的维数: Sub 数组示例() Dim x As Long, y As Long Dim arr(1 To 10, 1 To 3) '创建一个可以容下10行3列的数组空间 For x = 1 To 4 For y = 1 To 3 arr(x, y) = Cells(x, y) '通过循环把单元格区域a1:c4的数据装进数组中 Next y Next x MsgBox arr(4, 3) '根据提供的行数和列数显示数组 arr(1, 2) = "我改一下试试" '你可以随时修改数组内指定位置的数据 MsgBox arr(1, 2) End Sub 总结:二维是由行和列表示的数组,如ARR(3,2)表示数组中第3排第2列的元素。而一维数组只是由一个元素决定,如ARR(4)表示数组中第4个元素 3. 把单元格数据搬入内存: 一、声明: Dim arr as Variant '声明一个变量,不能声明其他数据类型 Dim arr(1 to 10, 1 to 2) , 这种声明也是错误的,固定大小的VBA数组是不能一次性装入单元格数据 或:dim arr()这种声明方式是声明一个动态数组,也可以装入单元格区域,构成一个VBA数组。 二、装入 arr =range("a9:c100") '装入很简单,变量 = 单元格区域 三、读出 装入数组后的单元格数值,可以按数组名称(行数,列数) 直接读取该位置的值,如下面的代码。 Msgbox arr(3,2) '就可以取出搬过去的而构成的数组第3行第2列的内容 四、示例 Sub s3() Dim arr() '声明一个动态数组(动态指不固定大小) Dim arr1 '声明一个Variant类型的变量

autocad vba初级教程 (强烈推荐)

Autocad VBA初级教程 (第二课编程基础) Autocad VBA初级教程 (第三课编程基础二) Autocad VBA初级教程 (第四课程序的调试和保存) Autocad VBA初级教程 (第五课画函数曲线) Autocad VBA初级教程 (第六课数据类型的转换) Autocad VBA初级教程 (第七课写文字) Autocad VBA初级教程 (第八课:图层操作) Autocad VBA初级教程 (第九课:创建选择集) 18 Autocad VBA初级教程 (第十课:画多段线和样条线) 20 Autocad VBA初级教程 (第十一课:动画基础) 23 Autocad VBA初级教程 (第十二课:参数化设计基础) 26

Autocad VBA初级教程(第一课:入门) 1.为什么要写这个教程 市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。 2.什么是Autocad VBA? VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。 3、VBA有多难? 相信大家都知道Basic是的含义。应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。 4、怎样学习VBA? 介绍大家一个学习公式:信心+恒心=开心。仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。本教程将陆续发布在CAD 世界论坛上,您不需要付费就可以学习。本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。 5、现在我们开始编写第一个程序:画一百个同心圆 第一步:复制下面的代码 第二步:在模型空间按快捷键Alt+F8,出现宏窗口 第三步:在宏名称中填写C100,点“创建”、“确定” 第四步:在Sub c100()和End Sub之间粘贴代码 第五步:回到模型空间,再次按Alt+F8,点击“运行” Sub c100() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 '开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆 Next i End Sub 也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。

EXCEL_VBA应用教程

EXCEL VBA应用教程--第1讲什么是EXCEL VBA 第1讲什么是EXCEL VBA 作者:https://www.doczj.com/doc/908853967.html,/landmao 1.1 为什么要学习EXCEL VBA 现在,财务软件已经趋于普及,会计人员的工作效率大幅度提高,减轻了会计人员大工作强度。财务软件但优点是从数据但输入、处理、输出实现了一体化,在会计数据但利用方面,尽管财务软件一直都作改进,但客观上还是满足不了管理工作但要求。因此,作实际工作中,EXCEL被大量应用,EXCEL但特点是简单易用,操作灵活,大大地弥补了会计软件地不足。但是,EXCEL处理数据的缺点是,每一步都要人工操作和控制,对重复性的工作,每次都要重复去作。 EXCEL VBA能够将重复的工作编写成程序,这样就能够提高效率和避免人为操作的错误。 1.2 什么是VBA VBA(Visual Basic For Applications)是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。VBA是Visual Basic的一个子集,VBA 不同于VB,原因是VBA要求有一个宿主应用程序才能远行(需要在EXCEL等软件的运行下才能运行),而且不能用于创建独立应用程序。而VB可用于创建独立的应用程序。VBA可使常用的过程或者进程自动化,可以创建自定义的解决方案,最适用于来定制已有的桌面应用程序。 通常意义上的VBA就是在Office中包含着的一种加强Office功能的Basic 语言。经过发展,在Office中,Word、Excel、Access、PowerPoint等个软件都有了自己的程序设计语言,分别称为WordBasic、ExcelBasic、AccessBasic、PowerPointBasic (在Outlook中的开发语言为Visual Basic Scripting Edition)。通常统一称为VBA(VB for Application)。 本讲座,主要基于EXCEL VBA进行讲解。 VBA和VB的区别包括如下几个方面: (1) VB是设计用于创建标准的应用程序,而VBA是在已有的应用程序(EXCEL 等)下运行,实行有关操作、处理、查询等的自动化,提高效率。 (2)VB具有自己的开发环境,而VBA必须寄生于已有的应用程序(如EXCEL)。 (3)要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),可独立运行。而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL,如编写的EXCEL VBA程序,没有安装EXCEL是无法运行的。

Excel VBA数组入门教程范文

Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已。 2. 数组的维数: Sub 数组示例() Dim x As Long, y As Long Dim arr(1 To 10, 1 To 3) '创建一个可以容下10行3列的数组空间 For x = 1 To 4 For y = 1 To 3 arr(x, y) = Cells(x, y) '通过循环把单元格区域a1:c4的数据装进数组中 Next y Next x MsgBox arr(4, 3) '根据提供的行数和列数显示数组 arr(1, 2) = "我改一下试试" '你可以随时修改数组内指定位置的数据 MsgBox arr(1, 2) End Sub 总结:二维是由行和列表示的数组,如ARR(3,2)表示数组中第3排第2列的元素。而一维数组只是由一个元素决定,如ARR(4)表示数组中第4个元素

3. 把单元格数据搬入内存: 一、声明: Dim arr as Variant '声明一个变量,不能声明其他数据类型 Dim arr(1 to 10, 1 to 2 ) , 这种声明也是错误的,固定大小的VBA数组是不能一次性装入单元格数据 或:dim arr() 这种声明方式是声明一个动态数组,也可以装入单元格区域,构成一个VBA数组。 二、装入 arr =range("a9:c100") '装入很简单,变量= 单元格区域 三、读出 装入数组后的单元格数值,可以按数组名称(行数,列数) 直接读取该位置的值,如下面的代码。 Msgbox arr(3,2) '就可以取出搬过去的而构成的数组第3行第2列的内容 四、示例 Sub s3()

excelvba实例教程#060:使用vba自动生成图表

在实际工作中我们常用图表来表现数据间的某种相对关系,一般采用手工插入的方式,而使用VBA代码可以在工作表中自动生成图表,如下面的示例代码。 1.Sub ChartAdd() 2. Dim myRange As Range 3. Dim myChart As ChartObject 4. Dim R As Integer 5. With Sheet1 6.. 7.R = .Range("A65536").End(xlUp).Row 8.Set myRange = .Range("A" & 1 & ":B" & R) 9.Set myChart = .(120, 40, 400, 250) 10.With 11..ChartType = xlColumnClustered 12..SetSourceData Source:=myRange, PlotBy:=xlColumns 13..ApplyDataLabels ShowValue:=True 14..HasTitle = True 15.. = "图表制作示例" 16.With . 17. .Size = 20 18. .ColorIndex = 3 19. .Name = "华文新魏" 20.End With 21.With . 22. .ColorIndex = 8 23. .PatternColorIndex = 1 24. .Pattern = xlSolid 25.End With 26.With . 27. .ColorIndex = 35 28. .PatternColorIndex = 1 29. .Pattern = xlSolid 30.End With

EXCEL编程入门教程

EXCEL编程初学者教程 新术语:“宏”,指一系列EXCEL能够执行的VBA语句。 以下将要录制的宏非常简单,只是改变单元格颜色。请完成如下步骤: 1)打开新工作簿,确认其他工作簿已经关闭。 2)选择A1单元格。调出“常用”工具栏。 3)选择“工具”—“宏”—“录制新宏”。 4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。 ★宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。 5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。 6)单击“停止录制”工具栏按钮,结束宏录制过程。 ※如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。 录制完一个宏后就可以执行它了。 1.4 执行宏 当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL 标准命令所无法实现的功能。而且,一旦熟悉了EXCEL的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行: 1)选择任何一个单元格,比如A3。 2)选择“工具”—“宏”—“宏”,显示“宏”对话框。 3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。 1.5 查看录制的代码 到底是什么在控制EXCEL的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧. 1)选择“工具”—“宏”—“宏”,显示“宏”对话框。 2)单击列表中的“改变颜色”,选择“编辑”按钮。 此时,会打开VBA的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同)

相关主题
文本预览
相关文档 最新文档