EXCELVBA应用教程--第1讲什么是EXCELVBA第1讲什么是EXCELVBA作者:为什么要学习EXCELVBA现在,财务软件已经趋于普及,会计人员的工作效率大幅度提高,减轻了会计人员大工作强度。财务软件但优点是从数据但输入、处理、输出实现了一体化,在会计数据但利用方面,尽管财务软件一直都作改进,但客观上还是满足不了管理工作但要求。因此,作实际工作中,EXCEL被大量应用,EXCEL但特点是简单易用,操作灵活,大大地弥补了会计软件地不足。但是,EXCEL处理数据的缺点是,每一步都要人工操作和控制,对重复性的工作,每次都要重复去作。EXCELVBA能够将重复的工作编写成程序,这样就能够提高效率和避免人为操作的错误。1.2什么是VBAVBA(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创建解决方案,也就基本掌握了。1.3应用EXCELVBA的好处在EXCEL中,使用VBA可以实现的功能主要包括:(1)创建报表。(2)对数据进行复杂的操作和分析。(3)使重复的工作自动化。(4)自定义EXCEL工具栏,菜单和界面。(5)自定义EXCEL,使其成为开发平台。用EXCEL作为开发平台有如下原因:(1)EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑。大家中在EXCEL使用中已经掌握了EXCEL基本概念、操作方法,采用EXCELVBA能够更加提高效率,使用者容易接受。(2)EXCEL内置大量函数和处理功能,通过EXCELVBA能够高效率地简单应用。(3)可连接到多种数据库,便于与财务软件等交换数据。(4)VBA简单易学,容易被会计人员及其管理人员掌握,易于大范围推广应用。用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存、处理、打印等。而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的工作只是使用它。1.4怎样学习EXCELVBA掌握EXCEL的人很多,但要在上面编写程序,也是需要学习的。要学习EXCELVBA,首先应该购买一本EXCELVBA的书籍,然后对照上面的案例就行学习和操作。同时,要根据自己的业务需要,结合实际编写一些实用的小功能。现在网络上的EXCELVBA很多,遇到问题,可以通过搜索,一般都能够找到。通过积累,逐渐就掌握了。一般需要三个月左右都时间。本讲座将结合案例,在逐步讲解EXCELVBA基本知识和方法的基础上,通过实际应用的方式来学习。EXCELVBA应用教程--第2讲EXCELVBA的开发环境和开发过程第2讲EXCELVBA的开发环境和开发过程作者:什么是VBEVBE(VisualBasicEditor)是编写VBA代码的工具,窗口结构和VB的编辑器相似。和VB编辑器不同的是,VBE不能单独打开,必须依附于他所支持的应用程序,如EXCEL。2.2启动VBE环境在Excel菜单中,选择工具——宏——VisualBasic编辑器,或者按快捷键Alt+F11即可进入。安全性设置:要编写VBA程序和运行VBA程序,需要进行“安全性”设置,不然编写当VBA程序无法运行。在Excel菜单中,选择工具——宏——安全性,进入安全性设置,一般选择“中”,如果不行就选择“低”。2.3VBE的应用进入VBE编辑器后,就能编写有关低界面后程序。VBE编辑器主要包括以下部分:1、代码窗口。就是在这里写VBA的代码,也是在这里查看代码的。2、对象窗口。可以在这里设定窗体的界面(如果使用了窗体的话),在这里能很直观地设定窗体各个控件的布局。3、对象浏览器。在这里可以查看所有对象库、特定对象或你自己的工程,包括所有的对象的列表与每个对象的成员列表。4、工程资源管理器。在这里,我们可以很方便地管理工程中的模块、类模块与窗体,还可以很容易地在代码与对象间切换。5、属性窗口。在这里可以很简单地设定很多对象相关的属性,简单到只要用鼠标选择即可。6、工具箱。在插入窗体后,可以从工具箱添加各种控件。7、立即窗口。其主要工作是:(1)在开发过程中,用Debug.Print输出的内容就在此显示。(2)当代码是Break模式时,查看对象和变量的状态。(3)用?加上语句,就可以看到运行的结果,在很多情况下比用msgbox报出方便多了。2.4使用VBA帮助和寻找资源1.VBA帮助。VBA的帮助中包含Excel所有属性、对象、方法等的说明,学习VBA的过程中,经常查阅VBA帮助,对了解Excel所有属性、对象、方法很有帮助。在查看别人的代码时,对不熟悉的部分,只要将光标移到其中,再按F1键,就能快速查获到相关的帮助。我们还可以在帮助的应答向导中,键入相关的关键词,来查找我们需要的内容。2.网络的搜索。网络的好处就在于信息量之巨大,而要查找到我们需要的信息时,最基本的就是用好搜索。通过如百度、Google等,只要键入合适用的关键词,就能找出不少相关的信息。2.5EXCELVBA的开发过程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键。EXCELVBA应用教程--第3讲常量、变量与数据类型(一)第3讲常量、变量与数据类型作者:数据是程序运行的基础,在EXCELVBA中,大量的数据是中EXCEL中的,但在程序运行中,还会有一些程序的控制数据。要掌握一种程序语言,必须了解该语言的数据类型有哪些以及该数据是如何声明的,以便得知该数据是使用哪种数据类型、该数据所能允许使用得最大和最小范围(生存期)、以及该数据占用多少内存空间。这样程序执行时才不会发生数据溢出(Overflow)和浪费内存空间得现象。执行程序时,必须先将程序和数据加载到计算机的内存(RAM)中才能执行,若该数据会随着程序的执行而更改其值,我们称之为变量(Variable),而不发生变化的则时常量。常量指的时数据类型特定值的文字表示,常量被用来指定给变量当作变量值。程序运行时,语句中的每一个常量,都会分配到内存空间来存放其值。3.1标识符变量和常量需要用一个名称来标识,这就是标识符。标识符名称第一个字符允许以大小字母、_或者中文名称(一般不建议用中文名称)开头,后面的字符可接A~Z、a~z、0~9或_等字符。3.2保留字保留字又称关键词(Keyword),是程序语言中事先赋予某个标识符的一个特别意义,因此就不得再重复赋予不同的用途。其用法又一定的规范,在编写程序时,这些保留字若出现在程序中的语句时会以蓝色标示,以提醒用户这些标识符是属于系统保留字不可误用。这后面的内容中,我们逐步学习涉及到的相关保留字,如if、then等等。3.3常量所谓“常量”是指数据类型特定值的文字表示。常量被用来指定给变量当作变量值。程序运行时,语句中的每一个常量,都会分配到内存的空间来存放其值。3.3.1整数常量整数常量由数字、+(正)、—(负)所组成。整数常量的表示方式由:二进制、八进制、十进制、十六进制。十进制整数常量是一串十进制数,十六进制常量是&H后面跟着一串十六进制数字(0~9、A~F),八进制常量则是&O(O为字母)后面跟着一串八进制数字(0~7)。十进制常量直接以阿拉伯数字(0~9)来表示,二八进制常量和十六进制常量则以二进制数表示整数常量。常量的类型是由其值或是接在其后的数据类型字符来决定。如果未指定数据类型字符,则在Integer类型范围内的值会采用Integer整数数据类型;超出Integer范围大小的值则采用Long长整数数据类型。由于一般人比较习惯十进制数,本书所用的数值常量,大都采用十进制数表示。3.3.2浮点常量浮点常量是整数常量后面跟着选择性的小数点和尾数,以及选择性的基底为10的指数。默认浮点常量是属于Double数据类型。如果指定Single、Double和Decimal数据类型字符,则常量就属于该数据类型。数据常量的各数据类型所占的内存空间与可表示的大小范围如表所示。浮点常量数据类型内存范围Byte(字节)1Byte0~255的整数(这种数据类型占用的内存空间最少)Short(短整数)2Bytes-32768~32767的整数Integer(整数)4Bytes-2147483648~2147483647的整数(约有10位数的正负整数)Long(长