《第二章学习VBA编程基础.doc》由会员分享,可在线阅读,更多相关《第二章学习VBA编程基础.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章 学习VBA编程基础 学会了专业函数的编程,极大地方便了在电子表格里进行函数,工程、科学计算。但要实现复杂专业计算的自动化,还需要学会对工作簿、工作表和单元格常用基本操作的编程VBA编程:主要是学会工作簿、工作表运行环境,选项,计算,编辑,输入,输出等的代码编写。 在介绍常用编程代码之前,还是先来认识一下电子表格Excel的VBA代码编写的基本知识,这样对看懂后面的常用编程代码是很有必要的(当然,是对像我这样菜鸟级的人而言,对高手们来说也许是多余的话)。2.1认识VBA的对象、属性、方法、事件 电子表格VBA是面向对象的编程语言。因为它简单、易学,功能强大,很受编程爱好者的喜爱。 既然电
2、子表格VBA是面向对象的编程语言,首先就要弄清电子表格VBA的对象是什么?有哪些?对象的属性、方法、事件是什么?有哪些? 一,电子表格VBA的对象 Excel应用程序(Application)范围内的设置和选项(例如“工具”菜单上“选项”对话框内的许多选项);返回顶级对象的方法,例如 ActiveCell 活动单元格和 ActiveSheet活动工作表 等都是VBA的对象。请看帮助文件中Excel对象模型 二,电子表格对象的属性、方法和事件 属性是对象本身固有的特性。如:单元格这一对象,用于存储计算数据和公式,它具有大小,字体,数据格式,填充色,边框,底纹,保护等属性。表示属性格式为: 对象名
3、称.属性名称属性值,如: ActiveCell(1,2).Value= 100 对象:ActiveCell(1,2);属性:Value=;属性值:100 方法是对象能做的事,在VBA中,对象的方法就是对象本身包含的函数和过程。调用格式为: 对象名称.方法名称,如: Range(G6).Select 对象:Range(G6);方法:Select 事件是发生在对象上的事情。在VBA中,事件是预先设置的,能被对象识别的动作。如Load加载、Click鼠标单击、Workbook_Open()、Worksheet_Activate()激活工作表等。 VBA编程就是在VBA集成开发环境中通过编写代码,激发
4、某种事件,驱动某种方法,以精心设计的流程,实现我们预期得到的结果输出。 三,电子表格VBA语句代码的基本形式 应该知道:每个VBA语句是构成VBA程序的基本单元;每个VBA语句都要实现一种功能,相关的一些语句组成完成特定任务的函数或过程、子过程,将许多函数、过程和子过程通过精心设计的流程组织起来,实现我们的预定目标,这就是VBA程序。 在理解了对象、属性、方法、事件后,总结一下VBA语句的基本形式: 1,对象.属性”属性值” 如:ActiveCell(1,2).Value= 100 对象ActiveCell(1,2)的Value值100 Sheet1.ScrollArea=”a1” 对象She
5、et1的ScrollArea滚动范围=”a1” 2,对象.属性.属性=”属性值” 如:在 Sheet1 的 A1 单元格中创建一个公式 Worksheets(Sheet1).Range(A1).Formula = =10*RAND() 3,对象.方法 如:激活工作表sheet1 Worksheets(Sheet1).Activate 4,对象.属性.方法 如:将工作表 Sheet1 上单元格区域 A1:D4 中的公式复制到工作表 Sheet2 上的单元格区域 E5:H8 中。 Worksheets(Sheet1).Range(A1:D4).Copy _ destination:=Workshe
6、ets(Sheet2).Range(E5) 5,对象.属性.方法 如:将 工作表Sheet1 上单元格区域 A1:D10 中的字体大小设置为12。 Worksheets(Sheet1).Range(A1:D10).Font.Size = 12 6,常用事件: (1)Workbook_Open():每次打开工作簿时发生。下例打开工作簿时,对窗口进行格式化。 Private Sub Workbook_Open(), Dim oldcaption as string用oldCaption变量保存打开本工作簿前的EXCEL标题 Sheet1.Activate 激活工作表1 With ActiveWin
7、dow 以下是对当前活动窗口的操作 .DisplayGridlines = False不显示网格线 .DisplayHeadings = False 不显示行号列标 .DisplayOutline = False不显示大纲视图 .DisplayZeros = False 隐藏窗口0值 .DisplayHorizontalScrollBar = False 隐藏水平滚动条 .DisplayVerticalScrollBar = False 隐藏垂直滚动条 .DisplayWorkbookTabs = False 隐藏工作表标签 .WindowState = xlMaximized 工作簿打开时最
8、大化 End With 结束针对当前活动窗口的操作 ActiveWorkbook.DisplayDrawingObjects = xlHide隐藏绘图工具栏 With Application .DisplayFormulaBar = False隐藏公式编辑栏 .DisplayStatusBar = False隐藏状态栏 .ShowWindowsInTaskbar = False隐藏窗口任务栏工具栏 End WithApplication.CommandBars(Standard).Visible = False隐藏标准工具栏Application.CommandBars(Formatting)
9、.Visible = False隐藏格式工具栏 End Sub (2) Worksheet_SelectionChange(ByVal Target As Range):工作表上的选定区域发生改变时,产生本事件。下例滚动工作簿窗口,直至选定区域位于窗口的左上角。Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveWindow .ScrollRow = Target.Row .ScrollColumn = Target.Column End WithEnd Sub(3)命令按钮Click事件:在电子表格V
10、BA编程计算中,最简单的启动方式就是在活动工作表上设计一个命令按钮,当用鼠标单击命令按钮,就启动设计的相应计算。下例单击工作表sheet1计算地形点坐标的命令按钮时引发的事件过程:(参见4.3)Private Sub dxdzbButton1_Click() Private Sub 名称Buttonl_Click()Dim xzan As String 声明变量xzanDim msg, style, title, response 声明变量msg, style, title, responseApplication.AskToUpdateLinks = False 取消Excel的更新链接Sh
11、eet1.Visible = xlSheetVisible 设置Sheet1(“地形点”)可见Sheet3.Visible = xlSheetVisible 设置Sheet3(“操作指南”)可见Sheet2.Visible = xlSheetHidden 设置Sheet2(“表面积”)不可见Sheet1.Activate 激活Sheet1End sub(4)自定义菜单项事件:电子表格VBA编程计算的另一个启动方法是单击自定义菜单项。(3)例中如是单击的自定义“地形点坐标计算”菜单项,菜单项指定运行宏为:dxdzb(),则引发的事件过程代码为:Private Sub dxdzb () Dim x
12、zan As String Dim msg, style, title, response Application.AskToUpdateLinks = False Sheet1.Visible = xlSheetVisible Sheet3.Visible = xlSheetVisible Sheet2.Visible = xlSheetHidden Sheet1.Activate End sub2.2在Excel VBA集成开发环境中编写、学习代码我们看到,电子表格每个对象都有相应的许多方法和事件,要记下那么多的方法、事件、属性值,对一般人,特别是不懂英语的人来说是不可能的。VBA集成开发
13、环境提供了对象和事件管理器,使编写代码不再困难。一,在Excel VBA集成开发环境中编写代码如图。对象:Worksheet工作表;事件:Activate激活过程:Private Sub Worksheet_Activate()End Sub 激活工作表过程代码:Sheet1.ScrollArea=”a1” 对象:Sheet1;属性ScrollArea滚动范围=”a1”这一代码过程,实现打开Worksheet工作表,Sheet1只有A1单元格是活动的。执行这一段代码,可用来保护Sheet1,防止被人删改。在输入代码时,当在sheet1后,再输入小数点“.”(不含“”),立即出现“属性方法提示窗
14、口”。你可以输入你设计的属性、方法的英语名称,也可以拖动提示窗口滚动条查找你需要的属性、方法,找到后点击上屏。如果你对英语不懂、不精,你还可以让词霸来帮你查看、选择。注:指点图标项表示属性;绿方块图标项表示方法。你看,是不是很方便!二,在Excel VBA集成开发环境中利用帮助系统学习编写代码在Excel中,那数不清的对象、属性、方法、事件都可以通过自带的帮助系统来随时查询。学会在VBA集成开发环境中实时查询对象、属性、方法、事件的帮助,这是我们学习编程和正确编写代码的极好途径。在Excel VBA集成开发环境中,要取得某个关键字的联机帮助,最简单的方式就是将光标指到该关键字上的任何地方,再按
15、下F1即可。不要选择此关键字。因为如果您只选择关键字的一部分或者选了一个以上的字,就会找不到需要的帮助。如下3图,是将光标分别停在show、Private、End Sub后,按下F1键分别显示的帮助窗口。通过帮助窗口,我们就可以看到各有关属性、方法、事件的具体含义、用法和示例。通过反复的日积月累,步步深入,您也就逐步从“菜鸟”变成了“凤凰”。值得注意的是:学海无涯, “有的放矢,学以致用”是我们学习的最便捷的原则,不要贪多求全,一口吃不了一个胖子。在Excel VBA集成开发环境中,还有一个对象浏览器,点击对象浏览器图标即可打开它。“对象浏览器”可让您浏览工程中所有可获得的对象并查看它们的属性
16、、方法以及事件。此外还可查看工程中可从对象库获得的过程以及常数。很容易显示您所浏览的对象的联机帮助,也可用“对象浏览器”去搜索和使用您所创建的对象;其它应用程序的对象也可用它来浏览。使用“对象浏览器”,请按照以下步骤执行:1. 在“工程/库”列表中选定您所要查看的工程或程序库名称。2. 使用“类”列表选定类;使用“成员”列表去选定类或工程中的特定成员。3. 查看在窗口底端的详细资料区选定的工程或类的信息。4. 使用“帮助”按钮显示所选类或成员的帮助主题。 用好对象浏览器,是我们学习VBA编程的极好工具,是第一手的大教程。市面上虽有许多大部头“教程”,但初学者能看的懂、用的上的好书实在是凤毛麟角,无怪乎有的朋友惊呼“垃圾书”太多!真希望我们的专家、高手们多写一些深入浅出的,少些概念,多些具体示例,让初学者能看的懂、用的上的好书。