第2章EXCEL VBA基础.docx
- 文档编号:12577720
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:44
- 大小:132.14KB
第2章EXCEL VBA基础.docx
《第2章EXCEL VBA基础.docx》由会员分享,可在线阅读,更多相关《第2章EXCEL VBA基础.docx(44页珍藏版)》请在冰豆网上搜索。
第2章EXCELVBA基础
第2章EXCELVBA基础
2.1什么是EXCELVBA
2.1.1为什么要学习EXCELVBA
现在,财务软件已经趋于普及,会计人员的工作效率大幅度提高,减轻了会计人员大工作强度。
财务软件但优点是从数据但输入、处理、输出实现了一体化,在会计数据但利用方面,尽管财务软件一直都作改进,但客观上还是满足不了管理工作但要求。
因此,作实际工作中,EXCEL被大量应用,EXCEL但特点是简单易用,操作灵活,大大地弥补了会计软件地不足。
但是,EXCEL处理数据的缺点是,每一步都要人工操作和控制,对重复性的工作,每次都要重复去作。
EXCELVBA能够将重复的工作编写成程序,这样就能够提高效率和避免人为操作的错误。
2.1.2什么是VBA
VBA(VisualBasicForApplications)是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
VBA是VisualBasic的一个子集,VBA不同于VB,原因是VBA要求有一个宿主应用程序才能远行(需要在EXCEL等软件的运行下才能运行),而且不能用于创建独立应用程序。
而VB可用于创建独立的应用程序。
VBA可使常用的过程或者进程自动化,可以创建自定义的解决方案,最适用于来定制已有的桌面应用程序。
通常意义上的VBA就是在Office中包含着的一种加强Office功能的Basic语言。
经过发展,在Office中,Word、Excel、Access、PowerPoint等个软件都有了自己的程序设计语言,分别称为WordBasic、ExcelBasic、AccessBasic、PowerPointBasic(在Outlook中的开发语言为VisualBasicScriptingEdition)。
通常统一称为VBA(VBforApplication)。
本讲座,主要基于EXCELVBA进行讲解。
VBA和VB的区别包括如下几个方面:
(1)VB是设计用于创建标准的应用程序,而VBA是在已有的应用程序(EXCEL等)下运行,实行有关操作、处理、查询等的自动化,提高效率。
(2)VB具有自己的开发环境,而VBA必须寄生于已有的应用程序(如EXCEL)。
(3)要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),可独立运行。
而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL,如编写的EXCELVBA程序,没有安装EXCEL是无法运行的。
虽然一些不同,VBA和VB在结构上仍然十分相似。
如果你已经对VB有一些基础,学习VBA就非常容易。
当掌握EXCELVBA后,对WORD、ACCESS等中应用VBA创建解决方案,也就基本掌握了。
2.1.3VB与VBA的发展过程
1、Microsoft于1991年5月20日在亚特兰大发表了VisualBasic1.0forWindows。
2、Microsoft于1992年9月1日发表了VisualBasicforMS-Dos标准版和专业版。
如同Windows平台的VisualBasic,该版本提供了简易的图形设计特点,用于设计功能强大、多样的传统应用程序。
运用该平台,开发人员只需简单的绘制用户界面,并附加相应的事件代码即可。
3、Microsoft于1992年11月2日发表了VisualBasic2.0forWindows标准版和专业版。
在该版本中,Microsoft加入了300多项新特性以帮助开发人员创建更快速、更有效以及能利用各种Windows特性的应用软件。
4、Microsoft于1993年5月14日发表了VisualBasic3.0forWindows标准版和专业版。
在该版本中提供了MicrosoftAccessDatabaseEngineforWindows1.1用以浏览大量的资料以及提供OLE(对象链接与嵌入自动识别)2.0的功能,开发各种商业应用软件。
同时,还加入了许多新的工具和控件以及增强的自定义控件功能。
5、1993年6月29日VisualBasic被整合于Excel5.0和Project4.0中。
VisualBasic将属于Windows和Macintosh平台统一的应用程序巨集语言。
在当时,一个通用巨集语言和OLE2.0是Microsoft的两大策略,通过这两个工具,用户可以跨越并整合不同的应用程序、使自动化运行并生成各种自定义解决方案。
VBA的灵活性以及它强大的开发引擎使得VisualBasic成为流行的、并受到高度赞誉的程序开发技术。
并且,数以十万计的软件增值零售商和第三方开发人员已经加入到了全球的VisualBasic开发团队中,这些开发人员能迅速利用他们现有的VisualBasic知识,开发属于MicrosoftOffice平台的各种解决方案。
同时,Excel也加入了对多工作表工作簿的支持。
6、1994年11月14日Microsoft在拉斯维加斯的COMDEX发表了VisualBasic4.0forWindows,并首次提出了属于32位Windows应用程序的OLE自定义控件(OCXs)——一种属于OLE标准定义的可重复使用的组件。
7、1995年12月12日Microsoft发表了基于MicrosoftWindowsNT和Windows95版本的VisualBasic4.0,在该版本中,不但增强了VisualBasic标准版和专业版的各种特性,而且也推出了一个全新的版本:
VisualBasic4.0企业版,以满足企业和团队的开发需求。
VisualBasic4.0的三个版本中都包含有增强的OLE技术支持、增强的资料浏览技术、开放的视觉化开发环境,以及与Windows95和WindowsNT的无缝整合。
8、1995年12月7日Microsoft发表了VisualBasicScripting(VBScript),一种属于VisualBasic的Internet的描述语言。
VBScript是用于设计Web内容的高性能描述语言,允许开发人员在Web页面链接和自动化各种对象参数,例如OLE对象。
VBScript同时也成为整个Internet的免费开发语言规范。
9、1997年2月3日Microsoft发表了VisualBasic5.0专业版——一个全球快速应用开发平台上最流行的开发工具。
在VisualBasic5.0中,Microsoft加入了许多新的特性以提高VisualBasic的整体性能和增强开发效率,并且能帮助开发人员高效、快速和灵活的解决方案。
这些特性包括:
Native语言编译、高速资料库浏览和改良的整合开发环境,这也使得VisualBasic5.0成为当时Basic最为强大的版本。
此外,开发人员可以在VisualBasic5.0中创建ActiveX控件,这项功能使得全球300多万开发人员能快速开发各种元件、执行于Internet、Intranet和主纵架构的应用软件。
10、1997年3月10日Microsoft发表了VisualBasic5.0控件开发版,通过这个版本,用户能快速方便地开发ActiveX控件,用于各种Internet、Intranet和主纵架构的应用软件。
在Microsoft发布的Excel97中,开始支持条件格式和数据有效性,新加入了一些菜单和工具栏。
在VBA方面,引入了全新的VBA编辑器、用户窗体(Userform)、类模块等。
11、1998年6月15日Microsoft发表了VisualBasic6.0,一种流行的快速应用软件开发工具。
VisualBasic6.0作为Microsoft的VisualStudio6.0工具套件之一,它提供了图形化、ODBC或OLEDB实现整合资料浏览工具平台,以及提供了与Oracle和SQLServer的资料库联结工具。
VisualBasic6.0的Web开发特性可以使得开发人员以更方便、组件式的方法,开发各种HTML和动态HTML的应用程序。
这些新特性,同时结合性能最佳化、简化应用程序的部署和错误调试以及支持Microsoft服务器技术等特性,使得VisualBasic6.0成为建立可扩展的企业应用开发平台的理想选择。
12、1998年4月28日Microsoft向第三方的软件供应商通过许可证的模式发表了VBA6.0和VBA开发工具组件6.0。
VBA6.0作为Office2000的核心组件,已成为快速开发自定义应用程序的强大的开发工具平台。
13、1998年9月2日Microsoft发表了一套全面开发可扩展企业应用的工具套装软件:
VisualStudio6.0。
VisualStudio6.0包含VisualBasic6.0,MicrosoftVisualC++6.0,MicrosoftVisualFoxPro6.0,MicrosoftVisualInterDevWeb6.0和MicrosoftVisualJ++6.0。
VisualStudio6.0在1998年的设计师日大会上正式发表,当时有115家全球顶级公司宣布全面支持VisualStudio6.0。
在1999年发布的Excel2000中,可使用HTML作为文件格式,开始支持COM加载宏,还具有自我修复的特性,加强了剪贴板和数据透视表方面的功能。
VBA也开始使用无模态用户窗体,还加入了一些新的VBA函数。
14、2000年2月15日Microsoft宣布对全球VisualBasic开发人员更深入、紧密的交流和支持。
15、之后,Microsoft发表了支持XML网络服务的.Net平台开发工具技术……
16、随着在2001年3月VBA6.3版的发布,Microsoft已经增强了VBA6.0,并包含了新的功能,扩充了开发环境的能力、灵活性和安全性。
这使得新的ISVs(独立软件供应商)使用这些新功能可开发出功能更强大的解决方案,诸如基于VBA的多线程工程、开发高效率的加载宏、以及支持数字签名。
并且随着Microsoft新的整合技术的创建,ISVs能比以前更快速和容易地整合VBA到他们的应用程序中。
VBA6.3是OfficeXP的一个核心组件(现在也包含在MicrosoftOutlook、FrontPage、以及MicrosoftAccess、Excel、Word、PowePoint中)。
通过VBA许可程序,Microsoft制造了同样的VBA版本在非Microsoft应用程序中,提供了同样易用且强大的VB到更广范围的新的应用程序领域中。
每个能使用VBA6.3的产品都包含有支持无模式对话框、完全与VB6.0相同的核心语言、增强的工程口令保护、在IDE中支持加载宏使得程序更有效率等特性。
一些宿主VBA6.3的产品也利用了VBA工程数字签名优势(为防止“宏病毒”)、支持ActiveX控件设计(容易创建复杂的工程组件)、和多线程工程(为更好的执行基于服务器的应用程序)。
17、Office2003提供了VisualBasic.NETOffice系统工具,C#.NET和VB.NET已经能够直接开发EXCEL的有关程序,并正在逐步完善和提升。
不过,从VBA过渡到.NET将有一个相当长的过程。
2.1.4应用EXCELVBA的好处
在EXCEL中,使用VBA可以实现的功能主要包括:
(1)创建报表。
(2)对数据进行复杂的操作和分析。
(3)使重复的工作自动化。
(4)自定义EXCEL工具栏,菜单和界面。
(5)自定义EXCEL,使其成为开发平台。
用EXCEL作为开发平台有如下原因:
(1)EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑。
大家中在EXCEL使用中已经掌握了EXCEL基本概念、操作方法,采用EXCELVBA能够更加提高效率,使用者容易接受。
(2)EXCEL内置大量函数和处理功能,通过EXCELVBA能够高效率地简单应用。
(3)可连接到多种数据库,便于与财务软件等交换数据。
(4)VBA简单易学,容易被会计人员及其管理人员掌握,易于大范围推广应用。
用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存、处理、打印等。
而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的工作只是使用它。
2.1.5怎样学习EXCELVBA
掌握EXCEL的人很多,但要在上面编写程序,也是需要学习的。
要学习EXCELVBA,首先应该购买一本EXCELVBA的书籍,然后对照上面的案例就行学习和操作。
同时,要根据自己的业务需要,结合实际编写一些实用的小功能。
现在网络上的EXCELVBA很多,遇到问题,可以通过搜索,一般都能够找到。
通过积累,逐渐就掌握了。
一般需要三个月左右都时间。
使用VBA帮助系统。
有关于Excel的对象、方法、属性以及其它知识的详细信息。
您可以在VBE编辑器的右上角“键入需要帮助的问题”文本框中输入关键字后按Enter键,VBE将会显示出搜索到的所有相关的结果,您可以从中选择想要看的主题。
单击所选择的主题后,会弹出关于这个主题的信息,您还可以在其中点击“参阅”、“示例”、“应用于”、“特性”等文字链接,查看更详细的信息。
使用“对象浏览器”。
在VBE编辑器中,选择菜单“视图——对象浏览器”或按F2键或选择工具栏上的“对象浏览器”按钮,将会显示出“对象浏览器”窗口。
在这里,为每个可用的对象列出了所有的方法、属性和事件,可查看项目中的过程和常量。
其中,飞行的小立方体图标表明该成员是一个方法,亮的闪电图标表明该成员是一个事件,索引卡图标表明该成员是一个属性。
您可以选择对象库,在搜索框中输入想要搜索的值。
在搜索结果窗口中是显示出相匹配的文本,选择一个对象后,在“类”窗口中显示它的类,选择一个类后,在右侧将会显示它的成员,包括方法、属性和常量。
在底部的窗口中,显示了有关该对象的更多信息。
可以按F1键或单击?
号图标直接进入该对象的帮助主题。
本讲座将结合案例,在逐步讲解EXCELVBA基本知识和方法的基础上,通过实际应用的方式来学习。
2.2EXCELVBA的开发环境和开发过程
2.2.1什么是VBE
VBE(VisualBasicEditor)是编写VBA代码的工具,窗口结构和VB的编辑器相似。
和VB编辑器不同的是,VBE不能单独打开,必须依附于他所支持的应用程序,如EXCEL。
2.2.2启动VBE环境
在Excel菜单中,选择工具——宏——VisualBasic编辑器,或者按快捷键Alt+F11即可进入。
安全性设置:
要编写VBA程序和运行VBA程序,需要进行“安全性”设置,不然编写当VBA程序无法运行。
在Excel菜单中,选择工具——宏——安全性,进入安全性设置,一般选择“中”,如果不行就选择“低”。
2.2.3宏
宏是能够自动完成某个任务的一组指令,这些指令放在一起就如同一个命令一样。
宏与Dos中的批处理文件一样。
批处理文件用于自动化用户完成的一组任务。
VBA把需要重复进行的任务创建宏,并编写其它涉及决策的任务的代码以完成任务自动化,最后可以把这个过程保存成文件并发布。
录制宏比从头开始编写代码要快得多。
在实际开发中,为节省时间可以先录制尽可能多的宏,用它来建立应用程序的基础,然后再对录制下来的代码进行修改。
1.录制宏
在VBA中,可以采用宏录制器或编程的方式自动处理任务。
不必了解宏录制器使用的编程语言,便可以在VBE编辑宏。
通过记录完成任务的步骤,或者在VBA中编程,都可以创建宏。
Office应用程序,例如word、Excel、PowerPoint、Access和Outlook都支持宏。
Office应用程序提供的创建宏的工具是MacroRecorder(宏录制器)和VB编辑器。
宏录制器用于自动化重复的任务,而VB编辑器自动化那些涉及决策的任务。
可以给宏指定符号(工具栏上的图标)、键(键盘上的键)或名字,用于表示一列命令、活动或击键。
录制宏有两种方式,一是双击状态栏中的"录制"命令,或者鼠标单击工具\宏\录制新宏命令,WORD等将记录下您的操作并转换为VBA语言。
2.修改宏
(1)指定快捷键。
(2)指定宏的保存位置:
Excel可保存宏到个人宏工作簿中。
(3)Excel可将宏指定给按钮(视图|工具栏|窗体|点选按钮到页面|指定宏)/图片(插入|图片|右击图片|指定宏)/工具栏按钮(工具|自定义|命令|宏|自定义...|拖动自定义按钮到工具栏|右击按钮可编辑图标和指定宏|关闭自定义...)。
2.2.4VBE的应用
进入VBE编辑器后,就能编写有关低界面后程序。
VBE编辑器主要包括以下部分:
1、代码窗口。
就是在这里写VBA的代码,也是在这里查看代码的。
2、对象窗口。
可以在这里设定窗体的界面(如果使用了窗体的话),在这里能很直观地设定窗体各个控件的布局。
3、对象浏览器。
在这里可以查看所有对象库、特定对象或你自己的工程,包括所有的对象的列表与每个对象的成员列表。
4、工程资源管理器。
在这里,我们可以很方便地管理工程中的模块、类模块与窗体,还可以很容易地在代码与对象间切换。
5、属性窗口。
在这里可以很简单地设定很多对象相关的属性,简单到只要用鼠标选择即可。
6、工具箱。
在插入窗体后,可以从工具箱添加各种控件。
7、立即窗口。
其主要工作是:
(1)在开发过程中,用Debug.Print输出的内容就在此显示。
(2)当代码是Break模式时,查看对象和变量的状态。
(3)用?
加上语句,就可以看到运行的结果,在很多情况下比用msgbox报出方便多了。
2.2.5使用VBA帮助和寻找资源
1.VBA帮助。
VBA的帮助中包含Excel所有属性、对象、方法等的说明,学习VBA的过程中,经常查阅VBA帮助,对了解Excel所有属性、对象、方法很有帮助。
在查看别人的代码时,对不熟悉的部分,只要将光标移到其中,再按F1键,就能快速查获到相关的帮助。
我们还可以在帮助的应答向导中,键入相关的关键词,来查找我们需要的内容。
2.网络的搜索。
网络的好处就在于信息量之巨大,而要查找到我们需要的信息时,最基本的就是用好搜索。
通过如XX、Google等,只要键入合适用的关键词,就能找出不少相关的信息。
2.2.6EXCELVBA的开发过程
1.EXCELVBA开发过程简介
在开发一个具体的业务程序时,需要对以下问题有个大致的考虑。
1)使用者。
这决定了程序的操作难度及界面感观。
2)数据来源和保存在哪里。
这决定了程序的结构。
3)如何操作。
这将决定程序的界面和细节。
4)数据处理的结果。
最终决定程序的价值。
2.认识不同的控件
开始时关闭所有工作簿,打开一个新工作簿并另存为一个具体名字,一般用项目名称。
在工具栏上单击鼠标右键,从快捷菜单中选择"窗体",显示"窗体"工具栏.其中有16个控件,只有9个可放到工作表内。
1)标签:
它用于表现静态文本。
2)分组框:
它用于将其他控件进行组合。
3)按钮:
用于执行宏命令。
4)复选框:
它是一个选择控件,通过单击可以选择和取消选择,可以多项选择。
5)选项按钮:
通常几个选项按钮组合在一起使用,在一组中只能选择一个选项按钮。
6)列表框:
用于显示多个选项并从中选择。
只能单选。
7)组合框:
用于显示多个选项并从中选择。
可以选择其中的项目或者输入一个其它值。
8)滚动条:
不是你常见的来给很长的窗体添加滚动能力的控件,而是一种选择机制。
例如调节过渡色的滚动条控件。
包括水平滚动条和垂直滚动条。
9)微调控件:
也是一种数值选择机制,通过单击控件的箭头来选择数值。
例如改变Windows日期或时间就会使用到微调控件。
3.向工作表添加控件
4.设置控件的特性
5.给控件命名
6.使用用户窗体
如果希望创建专业级的应用程序,并且方便用户输入数据,那么应该使用用户窗体。
用户窗体可以作为程序的对话框和窗口.向用户窗体添加控件基本类似于向工作表添加控件。
在对用户窗体设计完成后,可以对其进行预览,方法是在VBA编辑器中选择该窗体,单击“运行”菜单中的三角符号“运行子过程/用户窗体”,三角符号在VBA工具栏上也可能看得到,旁边是一个垂直的等于符号,最右边是个小正方形符号,它们类似于录音机上的按钮。
运行窗体的另一个方法是按F5键。
2.3常量、变量与数据类型
数据是程序运行的基础,在EXCELVBA中,大量的数据是中EXCEL中的,但在程序运行中,还会有一些程序的控制数据。
要掌握一种程序语言,必须了解该语言的数据类型有哪些以及该数据是如何声明的,以便得知该数据是使用哪种数据类型、该数据所能允许使用得最大和最小范围(生存期)、以及该数据占用多少内存空间。
这样程序执行时才不会发生数据溢出(Overflow)和浪费内存空间得现象。
执行程序时,必须先将程序和数据加载到计算机的内存(RAM)中才能执行,若该数据会随着程序的执行而更改其值,我们称之为变量(Variable),而不发生变化的则时常量。
常量指的时数据类型特定值的文字表示,常量被用来指定给变量当作变量值。
程序运行时,语句中的每一个常量,都会分配到内存空间来存放其值。
2.3.1标识符
变量和常量需要用一个名称来标识,这就是标识符。
标识符名称第一个字符允许以大小字母、_或者中文名称(一般不建议用中文名称)开头,后面的字符可接A~Z、a~z、0~9或_等字符。
2.3.2保留字
保留字又称关键词(Keyword),是程序语言中事先赋予某个标识符的一个特别意义,因此就不得再重复赋予不同的用途。
其用法又一定的规范,在编写程序时,这些保留字若出现在程序中的语句时会以蓝色标示,以提醒用户这些标识符是属于系统保留字不可误用。
这后面的内容中,我们逐步学习涉及到的相关保留字,如if、then等等。
2.3.3常量
所谓“常量”是指数据类型特定值的文字表示。
常量被用来指定给变量当作变量值。
程序运行时,语句中的每一个常量,都会分配到内存的空间来存放其值。
2.3.3.1整数常量
整数常量由数字、+(正)、—(负)所组成。
整数常量的表示方式由:
二进制、八进制、十进制、十六进制。
十进制整数常量是一串十进制数,十六进制常量是&H后面跟着一串十六进制数字(0~9、A~F),八进制常量则是&O(O为字母)后面跟着一串八进制数字(0~7)。
十进制常量直接以阿拉伯数字(0~9)来表示,二八进制常量和十六进制常量则以二进制数表示整数常量。
常量的类型是由其值或是接在其后的数据类型字符来决定。
如果未指定数据类型字符,则在Integer类型范围内的值会采用Integer整数数据类型;超出Integer范围大小的值则采用Long长整数数据类型。
由于一般人比较习惯十进制数,本书所用的数值常量,大都采用十进制数表示。
2.3.3.2浮点常量
浮点常量是整数常量后面跟着选择性的小数点和尾数,以及选择性的基底为10的指数。
默认浮点常量是属于Double数据类型。
如果指定Single、Double和Decimal数据类型字符,则常量就属于该数据类型。
数据常量的各数据类型所占的内存空间与可表示的大小范围如表所示。
浮点常量
数据类型
内存
范围
Byte(字节)
1Byte
0~25
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 EXCEL VBA基础 VBA 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)