ExcelVBA编程系列之对象模型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

]ExcelVBA编程系列之对象模型(1)VBA入门文章,整理了近两天,希望能给VBA初学者有所帮助.Excel2003对象模型编程快速入门[摘要]本文全面概括地讲解了一些关于Excel2003对象模型编程的基础知识,包括创建VBA子程序和宏,对象、方法、属性和集合的基本概念,如何使用事件、使用窗体创建对话框等,为您提供了使用程序自动化处理工作的基本方法。阅读本文后,您应该对关键的编程概念和知识有所了解,并能开发一些简单实用的应用程序以解决工作中遇到的实际问题。通过一个示例认识ExcelVBA程序首先,让我们看看下面的代码,在每行代码的前面都附有代码功能的解释。Sub隔行设置背景色()'声明常量值为15,即灰色的颜色索引值ConstGray=15'选择工作表中的第2行,其中活动单元格为最左边的单元格Range(A2).EntireRow.Select'开始循环.若活动单元格不为空,则重复循环,'直到活动单元格值为空时退出循环DoWhileActiveCell.Value'将所选行背景色设置为常量值Gray所代表的颜色,'本例中为灰色即15所代表的颜色索引值色Selection.Interior.ColorIndex=Gray'选择从活动单元格起向下的第2行'选择整行后,其活动单元格为最左边的单元格ActiveCell.Offset(2,0).EntireRow.SelectLoopEndSub试试看,在Excel中运行上面的程序,只用短短的6行代码,就能迅速地将你当前工作表中每隔一行添加背景色,使你的工作表更具有可读性。通过Excel对象模型编程,可以:定制Excel,实现自动化操作,以满足你特定的需要添加额外的功能节省时间和资源提示学习需要实践,将所学习到的知识通过实践才能真正理解和掌握。因此,边阅读边上机操作,才能达到好的学习效果。认识VBA和宏VBA是VB整合到MicrosoftOffice应用程序中的一个版本,在VBA中创建的代码也称作宏,宏是一系列的VB指令,通过在VB指令中使用Excel对象模型来执行Excel操作任务。在Excel中,你可以通过自已写代码来创建宏,也可以通过宏录制器来创建宏。■创建宏开启Excel2003,选择菜单“工具——宏——宏”,出现的“宏”对话框。在“宏名”文本框中输入所创建宏的名字,如“我的第一个宏”,单击“创建”按钮,Excel将自动打开VBE编辑器。缺省的VBE编辑器显示了3个窗口(可在“视图”菜单中控制是否显示),即:●代码窗口窗口标题为“Book1–[模块1(代码)]”。在该窗口中编写程序代码。也可在“工程窗口”中双击模块名或对象名打开相应的代码窗口。●工程窗口位于屏幕左侧上方,窗口标题为“工程-VBAProject”。该窗口中显示了当前所有的Excel对象和模块,方便查看和管理。如单击“MicrosoftExcel对象”前的加号将展开所有的对象,当前共有4个对象即Sheet1,Sheet2,Sheet3和ThisWorkbook。●属性窗口位于屏幕左侧下方,窗口标题为”属性-模块1”。该窗口显示了当前所选项目的属性设置。在这里,所选项为模块1,可在属性窗口中为模块1改名为一个合适的名字,如在名称文本框中,输入“我的第一个模块”后按Enter键,则工程窗口中的模块名称和代码窗口标题名称也相应变化。现在,在“我的第一个宏”程序中输入下面的代码:Sub我的第一个宏()DimwsAsWorksheetSetws=ActiveWorkbook.Worksheets.AddRange(A1).Value=Iamastudent.EndSub您先不需要明白这些代码的含义以及它们如何工作,以后我们会讲解。接下来,关闭VBE编辑器,返回Excel主界面(可单击VBE编辑器左上角的Excel图标或选择菜单命令来进行此操作)。然后,选择菜单“工具——宏——宏”,可看到在出现的“宏”对话框中已选取了“我的第一个宏”,单击“执行”按钮,此时,一个新的工作表被创建,且在该工作表的单元格A1中自动输入文本“Iamastudent.”■录制宏除了在VBE编辑器中通过输入代码创建宏之外,您还可以通过宏录制器录制菜单命令、按键和其它操作来创建宏。首先,选择菜单“工具——宏——录制新宏”,在弹出的“录制新宏”对话框中输入宏名,如“年级”;在“快捷键”文本框中,输入使所录制的宏运行的快捷键,如B;在“保存在”下拉框中选“当前工作簿”;在“说明”文本框中输入宏的功能描述,如“自动生成年级号”,单击“确定”按钮,开始录制宏。此时,在工作表中出现一个如下图1所示的悬浮的工具栏,有两个按钮,其中左边为“停止录制”按钮,右边为“相对引用”按钮。此主题相关图片如下:图1然后,在单元格A1中输入“一年级”,A2中输入“二年级”,单击“停止录制”按钮。最后,测试刚录制的宏。清除工作表中的内容后,按Ctrl+Shift+B组合键,Excel将运行刚才所录制宏,在单元格A1和A2中自动输入“一年级”和“二年级”。提示关于宏安全性。当你打开含有宏程序的工作簿时,Excel会检查该工作簿中是否含有宏,若有,则会弹出“安全警告”对话框(在安全性级别设置为中的情况下),若点击“启用宏”按钮,宏将运行。注意,对于未知宏,最好先使用杀毒软件确保无宏病毒后再运行。子程序先看看刚才编写的代码:Sub我的第一个宏()DimwsAsWorksheetSetws=ActiveWorkbook.Worksheets.AddRange(A1).Value=Iamastudent.EndSub关健词Sub…EndSub开始和结束宏,其格式为:Sub宏名()代码EndSub一个子程序由一组代码语句组成,以Sub开始,以EndSub结束。一个子程序不一定是宏。您能在一个子程序中调用另一个子程序。如:Sub我的另一个宏()我的第一个宏EndSub如果运行“我的另一个宏”子程序,则调用”我的第一个子程序”,添加一个单元格A1内容为”Iamastudent.”的新工作表。创建单独的子程序能更清晰地组织你的代码,更容易地处理通用过程。例如,若需创建并显示3个工作表,则可将上面代码改写为:Sub我的另一个宏()我的第一个宏我的第一个宏我的第一个宏EndSub即将“我的第一个宏”子程序运行三次,不仅实现了最终的目标,而且也简化了代码。对象、方法和属性Excel对象模型使用面向对象编程方式。听起来很高深,其实很简单,您只需了解对象、方法和属性三个基本的概念,就可以先入门了。对象,即某物;方法,即某物能做的事情;属性,即某物的特征。例如,一台空调即为一个对象,空调能做的事情如制冷、制热、换气等是它的方法,而对空调的描述则是它的属性,如空调的颜色为白色、尺寸大小等。让我们来看看刚才程序中所使用的代码,并区分对象、方法和属性。Setws=ActiveWorkbook.Worksheets.AddRange(A1).Value=Iamastudent.这里有三个对象,即ws代表Worksheet对象,ActiveWorkbook对象代表当前工作簿,Range对象代表在当前工作表中的单元格区域。提示Excel对象模型就是我们所能使用来编制Excel程序的对象列表。当第一次使用某对象变量时,以Set关键字开始,为该对象分配所需的内存空间,并可为对象变量命以合适的名字,如上面的的ws。方法总是与对象相关联。如在“我的第一个宏”程序代码中包含一个Add方法,它与ws对象相关。使用方法时,应在对象和方法之间添加一个句点,如Worksheets.Add。在上面的代码中,使用Add方法在活动工作簿中添加了一个新的工作表。属性也总是与对象相关联。在上面的代码中,包含一个属性Value,它与Range对象相关。同方法一样,使用属性时,也应在对象与属性之间添加一个句点,如Range.Rowheight。每个对象都是一种特定的对象类型,每类对象都有自已的一组方法和属性。在上面的代码中,ws是一个Worksheet对象,有方法如Visible,有属性如Count。属于Worksheet对象的方法和属性,其它类型的对象可能没有,反之,其它对象有的方法,Worksheet对象不一定也有,如执行语句Worksheet.Value=”Hello”将会出现错误,因为Worksheet对象没有Value属性。使用事件先编写一个宏。按前面所述的方法,创建一个名为“考勤记录表”的宏程序,即在工作表菜单中选择“工具——宏——宏”,输入名称“考勤记录表”,单击“创建”按钮,自动打开VBE编辑器,选中“模块1”,在工程属性窗口的名称框中输入“考勤记录表”。然后,在代码窗口中输入如下代码:Sub考勤记录表()DimwsAsWorksheetSetws=ActiveWorkbook.Worksheets.AddRange(A1).Value=年级Range(C1).Value=班级Range(B3).Value=姓名Range(D3).Value=考勤Range(B4).Value=正常Range(B5).Value=迟到Range(B6).Value=早退Range(B7).Value=缺课Range(B8).Value=实到EndSub我们先设想一下,当你打开工作簿时,如果上面的程序能自动运行,生成你每天想要的表格,该多好啊!这是可以实现的,你能使用对象事件来完成。当某事情发生在某对象上时,该对象的一个事件发生。例如,当单击一个按钮时,一个Click事件发生在该按钮对象上。当开启Excel时,Auto_Open事件发生,因此,要想当Excel打开时,某程序运行,则将该程序置于Open事件程序中即可。打开Excel2003,开启VBE编辑器(可在工作表菜单工具——宏中选择,也可按Alt+F11组合键),先创建上面的“考勤记录表”宏程序。接下来,在工程窗口的MicrosoftExcel对象模型中找到“ThisWorkbook”并双击,打开标题为ThisWorkbook的代码窗口,可以看到在该窗口顶部有两个下拉框,点击左边的对象列表下拉框,选择“Workbook”,VBE编辑器自动添加SubWorkbook_Open事件过程,该Open事件将在Excel开启时自动运行。现在,在该事件过程中添加需要在Excel开启时自动运行的宏程序代码,本例中,要使得当Excel工作簿打开时,“考勤记录表”程序自动运行以建立一张表单,代码如下:PrivateSubWorkbook_Open()考勤记录表EndSub保存工作表后退出,重新开启该Excel工作簿,将会看到工作簿上新生成一张考勤记录表单,这是”考勤记录表”宏程序运行后的结果。续使用窗体——创建自已的对话框窗体是一个对话框,能在VBA中创建并设计,如添加复选框、文本、图片和其它控件对象。窗体可用来与用户进行交互,如传递信息给用户或从用户那里获取信息。例如,当宏正在运行时,可向用户显示一个进度条,代表程序运行进度。对于上一小节中所展示的例子,当你每次打开该工作簿时,都会自动生成一个考勤记录表。如果你一天打开该工作簿五次,将会生成5个考勤记录表。但有时,你不想新生成考勤记录表,因为你原来的考勤记录表还需要补充填写,所以,你应该能对该工作簿进行控制。这时,你可以使用窗体设计一个对话框,当你每次打开该工作簿时,都会出现一个带有选项的对话框,让你选择是否创建新的工作表。■使用窗体创建对话框1.在Excel中,选择菜单“工具——宏——宏”命令,弹出“宏”对话框,在“宏名”文本框中输入“记录表提示”,单击“创建”按钮,打开VBE编辑器;2.在VBE编辑器中,选择菜单“插入——用户窗体”命令,将出现一个带有控件工具箱的窗体,在属性窗口中将名称属性改为“提示”,将Caption(标题)属性改为“是否创建新的考勤记录表?”,输入完成并按Enter键后,窗体标题相应变化。提示在控件工具箱中,当鼠标指针移到某个控件上时,会显示该控件名称。3.在控件工具箱中,单击“标签”控件,然后在“提示

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功