VBA最最基础入门PPT_第1页
VBA最最基础入门PPT_第2页
VBA最最基础入门PPT_第3页
VBA最最基础入门PPT_第4页
VBA最最基础入门PPT_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 目录 1 什么是VBA 为什么要学VBA 2 宏3 VBA编辑器4 对象 属性 方法 事件5 VBA过程6 数据类型 变量 常量 数组7 程序语句 2 1 什么是VBA 为什么要学VBA VBA是VisualBasicforApplications的简写 是一种应用程序开发工具 可以用VBA来开发软件产品 来满足软件某些方面的需要 VBA的独特之处在于它由应用程序控制 反过来 它又可以增强该应用程序的功能 微软的office和autocad都有VBA 我们为什么要学VBA 如果只需要满足一些普通的工作需求可能永远也不会用到VBA 但在实际应用的过程中 人们的操作却越来越大 需要也越来越高 这时候就需要用VBA来对软件进行二次开发了 VBA可以有效地自定义和扩展软件的功能 VBA功能很强大 但并不是万能的 也并不是所有工作都需要用VBA来解决 也并不是所有工作用VBA来解决都会很简单 这要根据实际情况而定 有些工作用VBA来解决的话相反会变得很麻烦 3 2 宏 宏就是用 VBA 高级程序语言编制出来的程序就叫 宏 每个软件的宏对话框不是完全一模一样 但是大体是相同的 下面以3DMine软件为例子讲解 4 4 对象 属性 方法 事件 对象VBA与传统语言的重要区别之一就是它是面向对象的 对象是VisualBasic程序设计的核心 事实上 窗体和控件都是对象 数据库也是对象 对象到处都存在 一旦理解如何引用应用程序对象模型中的对象 就能够使用对象及其特性来建立自己的解决方案 对象是为了管理数据和代码的方便而提出的 事实上 在VBA中 对象是封装数据和代码的客体 它是代码和数据的组合 可将它看作单元 每个对象由类来定义 对象具有属性 方法和事件 5 属性属性是一个对象的特性 它定义了对象的特征 诸如大小 颜色或屏幕位置 或某一方面的行为 如对象是否激活或可见 可以通过修改对象的属性值来改变对象的特性 6 方法方法指的是对象能执行的动作 方法是一些系统封装起来的通用过程和函数 以方便用户的调用 对象方法的调用格式为 对象 方法 参数名表 7 事件事件是一个对象可以辨认的动作 如C1ick 单击 DbC1ick 双击 等 系统为每个对象预先定义好了一系列的事件 当在对象上发生了事件后 应用程序就要处理这个事件 而处理的步骤就是事件过程 8 5 VBA过程 一个过程就是执行某些动作的代码组合 VBA过程分Sub过程和Function过程 1 Sub过程总是以 sub过程名 开头 以 EndSub 结尾 一个过程就是执行某项动作的一套指令 Sub过程不返回运行的结果 2 Function总是以 Function程序名 开头 以 EndFunction 结尾 和Sub过程的区别是Function过程返回程序运行的值 值可以是一个值或一个数组 就像我们的工作表函数 Function过程也就是我们说的自定义函数 要设计一个过程 其实很简单 把需要的对象收集起来 看看我们要对他们的属性进行怎样的修改 我们需要做什么 需要用什么样的方法 要用哪些事件 收集起来就是一个完整的过程 9 6 数据类型 变量 常量 数组 数据类型VBA支持数据类型包括Byte Boolean Integer Long Single Double Date String Object Variant 默认 和用户定义类型等 10 变量 变量的概念变量是内存中用于存储值的临时存储区域 在使用变量之前 必须先声明它 声明通知VBA使用它的名字和数据类型 变量名必须以字母字符开头 在同一范围内必须是惟一的 不能超过255个字符 可以给变量指定任何名字 但在VBA中应注意以下几点 1 变量名不能包含下列字符 等 2 变量名不能包含空格 但是可以包含下划线 11 声明变量声明变量有两个作用 一是指定变量的类型 二是指定变量的适用范围 应用程序中可以引用变量的作用域 定义变量可以使用Dim语句 Dim变量名As数据类型在VBA中 所有没用DIM语句显示声明类型的变量都被自动视为Variant数据类型 我们可以在模块中输入 OptionExplict 作为第一句语句来强制声明所有变量 也可以点 工具 选项 在选项对话框里勾选 要求声明变量 这样 VBA在遇到没有声明的变量名称 该语句将导致程序停止 12 定义变量除了可以使用Dim语句外 比较常的还有 static语句 Private语句 Public语句 使用不同的语句定义的变量不同的是它们的作用作用域不同 具体为 1 如果在一个过程中包含了一个Dim或Static语句 此时声明的变量作用域为此过程 即本地变量 2 如果在一个模块的第一个过程之前包含了Dim或Prvate语句 此时声明的变量作用域为此模块里所有的过程 也就是在此模块里所有的过程都可以使用它 即模块作用域下的变量3 如果在一个模块的第一个过程之前包含了Public语名 此时声明的变量作用域为所有模块 即公有变量 13 常量常量在程序执行期间 它的值总是保持固定 常量可以是数字 字符串 也可以是其他值 每个应用程序都包含一组常量 用户也可以定义新常量 一旦定义了常量 就可以在程序中使用它 VBA支持两种类型的常量 即内置常量和用户定义的常量 常量声明后 不可以对它进行再赋值 声明常量设定常量的值 需要用Const语句 Const常量名As数据类型 常量的值 14 数组数组是具有相同数据类型并且共享一个名字的一组变量的集合 数组也是变量 数组中的元素通过索引数字加以区分 可以用Dim语句或者Public语句声明数组 Dim Public数组名 atob as数据类型a和b是数组中元素的个数 数组元素素最小值为a 最大值为b 元素个数为 b a 1 个 当然 你也可以直接输入个数 此时默认最小索引号为0 如 Dimmyarr 5 AsInteger这个数组的最小元素索引号为0 元素个数为6 上面定义的只是一维数组 你还可以定义二维 三维 四维 如 Dimmyarr 1to5 1to10 AsInteger这就是一个二维数组 元素个数为5 10 50个 在程序设计的过程中 定义数组的时候我们可能不能确定数组的元素个数 对数组进行声明后 可以在运行时用ReDim语句重新指定数组的大小 VBA支持的最大维数为60 15 7 程序语句书写程序语句时必须遵循的构造规则称为语法 缺省情况下 在输入语句的过程中 VBA将自动对输入的内容进行语法检查 如果发现错误 将弹出一个信息框提示出错的原因 VBA还会约定对语句进行简单的格式化处理 与传统的程序设计语言一样 VBA也具有结构化程序设计的3种结构 顺序结构 选择结构和循环结构 VBA包含赋值语句 If语句 SelectCase语句 Do Loop语句 For Next语句 FoxEach Next语句 While Wend语句 Exit语句和GoTo语句 16 顺序结构下面示例是指定InputBox函数的返回值给变量yourName SubQuestion DimyourNameAsStringyourName InputBox Whatisyourname MsgBox Yournameis yourNameEndSub 17 选择结构IF Then Else语句根据条件的值 可使用If Then Else语句运行指定的语句或一个语句块 IF Then Else语句可以根据需要嵌套多级 然而 为了可读性可能会使用SelectCase语句而不使用多嵌套的If Then Else语句 使用If Then Else语句可以定义两个可执行的语句块 其中一个块会在条件为True时执行 而另一个块会在条件为False时执行 下列的示例显示了语法 Subtest DimxAsDoubleDimyAsDoubleIfx 0Theny x 1Elsey xEndIfEndSub 18 SelectCase语句当一个表达式与几个不同的值相比较时 可以使用SelectCase语句来交替使用 在下面的示例中 SelectCase语句会计算发送给此过程的参数performance 请注意 每个Case语句可以包含一个以上的值 一个值的范围 或是一个值的组合以及比较运算符 如果SelectCase语句与Case语句的任何值不匹配 则可选择CaseElse语句运行 下列的示例显示了语法 FunctionBonus performance salary SelectCaseperformanceCase1Bonus salary 0 1Case2 3Bonus salary 0 09Case4To6Bonus salary 0 07CaseIs 8Bonus 100CaseElseBonus 0EndSelectEndFunction 19 循环语句ForEach Next语句ForEach Next语句会重复一个语句块 而它是作用于集合中的每个对象或是数组中的每个元素 当循环执行一次则VisualBasic会自动设置一个变量 下面的代码会在数组的每个元素中循环 并且将每个值设置成它的索引变量i的值 下列的示例显示了语法 DimTestArray 10 AsIntegerDimiAsVariantForEachiInTestArrayTestArray i iNexti 20 Do Loop语句可以使用Do Loop语句去运行语句的块 而它所用掉的时间是不确定的 当条件为True或直到条件变成True时 此语句会一直重复 在下面的TestLoop过程中 在进入循环之前检查条件 如果将myNum的值由20替换成9 则循环中的语句将永远不会运行 下列的示例显示了语法 SubTestLoop counter 0myNum 20DoWhilemyNum 10myNum myNum 1counter counter 1LoopMsgBox Thelo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论