Excel VBA简明教程.doc

上传人:M****1 文档编号:523976247 上传时间:2023-07-21 格式:DOC 页数:17 大小:386KB
返回 下载 相关 举报
Excel VBA简明教程.doc_第1页
第1页 / 共17页
Excel VBA简明教程.doc_第2页
第2页 / 共17页
Excel VBA简明教程.doc_第3页
第3页 / 共17页
Excel VBA简明教程.doc_第4页
第4页 / 共17页
Excel VBA简明教程.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《Excel VBA简明教程.doc》由会员分享,可在线阅读,更多相关《Excel VBA简明教程.doc(17页珍藏版)》请在金锄头文库上搜索。

1、VBA的简明教程1.VBA简介VBA为Visual Basic For Application的简称,在Microsoft Office中包括Excel、Word、PowerPoint、Access、Visio均提供VBA程序的功能。VBA的使用大致上与Visual Basic类似,在VBA中可使用Office软件的功能,在VBA程序中可操控Office软件。就程序撰写而言,资料的输入、编辑、打印等I/O动作可由应用Office软件的功能,因而程序撰写可更专注于程序逻辑思考而省下I/O功能撰写的时间。在Excel中宏所录者即是为VBA的子程序(Subroutine)的格式储存,宏的程序代码的功

2、能限制在于其为直接录制操作过程,所以录制所得的子程序不能传入变量值或传出变量值,且录制之宏功能以可于EXCEL的工作表或图表中操作之功能为限。欲使用不能直接于Excel中操作之进阶功能则需使用VBA程序。VBA的程序可分为子程序(Subroutine)与函数(Function)两种,其功能与Visual Basic程序语言中的子程序及函数相同。在语法上VBA与Visual Basic程序语言相同,而且VBA也有IDE的程序编写工具。两者之间主要的差别是VBA以配合Office应用为主,Visual Basic程序语言则为软件开发环境,除了VBA的发展功能外尚可用于发展Windows的一般执行文

3、件、Windows系统组件及开发应用软件系统。概略而言,宏可相当于VBA语言中之无参数之子程序(Subroutine),而且VBA中的函数(Function)可在Excel工作表中以自订函数形式叫用。2.VBA程序语法本小节将简单介绍VBA的基本语法,限于篇幅进阶的语法及对象使用将不在本文中说明。读者若要精研VBA的语法可参阅参考文献中所介绍的书籍。一、基本功能叙述index1=1index1=index1+1If index1 10 Then index1=10value1=0.01: alpha=0.85*index1VBA的语法与Visual Basic大多数均是相同的,下列这几行正确的

4、VBA叙述您可以在一列中键入一个以上的叙述,只要以冒号(:)将他们分开即可。如上述的第四列述叙。如同BASIC的语法定义,VBA中是变量、关键词和函数、子程序名称等均不分大小写的,例如INDEX、index、Index三者均指同一个变量连续行VBA连续字符符号是底线( _ ),当程序执行到某一列是以底线符号结尾时,他会假设有一个连续的行,并将下一行视为目前叙述的一部份。太长的叙述不易阅读,在这种情形您可以采用VBA连续列字符,例如以下讯息列就比常用窗口宽度还长:Response = MsgBox(Do you want to continue ?, vbYesNo + vbCritical +

5、 vbDefaultButton2, MsgBox Demonstration, DEMO.HLP, Ctxt = 1000)如果程序行包含很长的列,比较好的方法是加一空格符和底线符号在该行结束的地方 ,并在下一列继续此一列叙述。如下所示Response = MsgBox(Do you want to continue ?, vbYesNo + vbCritical + _vbDefaultButton2, MsgBox Demonstration, DEMO.HLP, Ctxt = 1000)连续行的最末列的最后面不需要加上底线符号,而且底线符号之后也不可以再加上任何文字或数字,批注也不可以

6、。批注批注列可让程序易被看懂,又如果要让程序中的某一列不执行,只要将这一列标示为批注即可。VBA中的批注列符号为单引号( ),若是一整列都要作为批注,也可在这列以REM叙述开头。下面前两列都是批注,第三列则是在后半段加上REM叙述作为批注,第四列则是在后半段加上单引号( )标示为批注:REM 批注列示范This is a remark demoMyStr1 = Hello : Rem 将批注加在陈述式之后,用冒号隔开。MyStr2 = Goodbye 此亦为批注,且不需要冒号。常数与变量常数在程序中只包含固定的数值,您不能在程序进行中更动他,常数以关键词Const始,例如下一列将beta定义为

7、常数,其值为0.85:Const beta=0.85VBA中已有预先定义了某些常数,例如在MsgBox函数中vbYesNo代表常数值4。详细的常数定义可在VBA的编辑器中取得说明。变量是指到程序可以储存值的内存位置的代表名称。变量与常数不同的是变量可在程序执行期间改变其值。在VBA中变量可有不同的内容型态,例如:Byte、Boolean、Integer、Long、Currency、Decimal、Single、Double、Date、String、Object、Variant ,其中预设的变量型态是Variant。以下三列是变量的使用范例:price=45 数值(integer)变量Item=

8、”水果” 文字(string)变量Set xlApp = CreateObject(excel.application) 对象(object)变量Option Explicit叙述这一叙述通知VBA编译器找出未宣告即使用的数数。在预设的情况下VBA允许变量不经宣告即可使用,但这也造成程序除错上的某些困难。您也可在程序的第一行使用Option Explicit叙述,可强制程序在使用变量前先需宣告,这样有避免拼错字母造成程序上逻辑错误的问题。Dim叙述您可以使用Dim在程序或函数中明确的定义变量或数组变量。若您使用了Option Explicit叙述,则您;所使用的变量皆需使用Dim先行宣告才可使

9、用。以下三列皆是正确的变量宣告Dim text 宣告了一个变量Dim price,Value,sum 同时宣告两个以上的变量Dim Item(100) 宣告了101个元素的数组。VBA亦可使用数组,数组的第一个元素预设为0,所以上述最后一列中宣告了Item(0)至Item(100)共计101个变量。Public与Private关键词Public与Private关键词宣告变量用来限制变量的有效范围,使用 Public 陈述式宣告的变量,可以在所有模块里使用 (除非使用 Option Private Module);变量有效范围为它们所在的项目里。使用 Public 陈述式来宣告变量的资料型态。举

10、例来说,下列的陈述式宣告一个变量为 Integer:Public NumberOfEmployees As Integer您也可用 Public 陈述式来宣告变量的对象型态。下列的陈述式宣告一个变量为工作表的新执行个体。Public X As New WorksheetPublic 陈述式无法在对象类别 模块里宣告固定长度的字符串变量。Private 用以宣告变量只适用于宣告它们的模块中。Private 陈述式也可以用来宣告变量的资料型态。举例来说,下列的陈述式宣告变量为 Integer:Private NumberOfEmployees As Integer您也可使用 Private 陈述式

11、加上空白括号来宣告动态数组。宣告之后,在程序里使用 ReDim 陈述式来定义数组的维数和元素。变量的大小已由 Private、Public或 Dim 陈述式所明确指定,若重新宣告数组变量的维数,则会发生错误。变量名称如同在Visual Basic中一般,一个变量名称最多可使用255个字符,变量名称的命名规则如下:1.变量的第一个字符需英文字母。例如 Person1为有效变量名,23men则是不合规则的变量名称。2.变量名称不可包含空白、点、,逗号或其它特殊字符。3.变量名称不可为关键词,例如for、next、while、public等运算子程序中使用的运算子摘要为下表当一个表达式中有数个动作发

12、生时,各部分的动作会依预定优先级完成,而此顺序就是运算子的优先级。当表达式中有超过一种运算子时,会先执行算术运算子,其次是比较运算子,而后才是逻辑运算子。比较运算子的优先级全都是相同的,也就是说依照出现的顺序由左到右依序执行。而算术和逻辑运算子则必须依照下列的优先级,依序执行。下表是四个种类的运算子汇总表,各运算子优先级由上而下排列:流程控制结构IfThenElseIf.EndIf在VBA中可使用If.then.ElseIf.EndIF来控制循环与条件判断式,If陈述式的结构如下:If condition ThenstatementsElseIf condition-n Thenelseifs

13、tatements.ElseelsestatementsEnd IfIf.Then.Else 陈述式有区块格式及单行格式两种格式,以下范例是 If .Then.Else 的用法。Dim Number, Digits, MyStringNumber = 53 设定变量起始值。If Number 10 Then Digits = 1ElseIf Number 100 Then 若判断结果为 True,则执行下一行陈述式。 Digits = 2Else Digits = 3End If假如判别式 较为简单,您也以使用单行格式语法,以下是单行格式的正确语句:If Digits = 1 Then MyS

14、tring = One Else MyString = More than oneSelect Case使用If.Then.Else的判别式每次只有一个判别分支,SelectCase则一次可以有数个分支,根据判别变量的值,您可以执行其中一个程序区块,以下是正确的SelectCase程序代码Dim NumberNumber = 8 设定变量初值。Select Case Number 判断 Number 的值。Case 1 To 5 Number 的值在 1 到 5 之间,是非排它性的。 Debug.Print Between 1 and 5 下一个 Case 子句是本范例中唯一判断值为 True 的子句。Case 6, 7, 8 Number 的值在 6 到 8 之间。 Debug.Print Between 6 and 8Case 9 To 10 Number 的值为 9 或 10。Debug.Print Greater than 8Case Else 其它数值。 Debug.Print Not between 1 and 10End Select上述范例中包含了Case Else程序区块,这一区

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 法律文献 > 专利法

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号