VBA编程及应用基础完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新).ppt
《VBA编程及应用基础完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新).ppt》由会员分享,可在线阅读,更多相关《VBA编程及应用基础完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新).ppt(230页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VBA概述,开发环境VBE、宏,本讲内容,什么是VBA?,VBA(Visual Basic for Applications)是Microsoft Office 系列组件的内置编程语言,即应用程序中的VB。它“寄生”于Office应用程序,是 Office 套装软件的一个重要组件 使用 VBA 可以结合 Office 组件开发应用程序,如在 Excel 中自定义函数、开发应用程序等 例:认识VBA,Excel中使用VBA功能,VBA开发环境VBE,Office提供了VBA的开发环境,即 Visual Basic 编辑器(VBE)窗口 在使用VBE前,必须先运行Office软件,如 Excel
2、2010,在Excel环境中打开VBE窗口的方法: 单击“开发工具”选项卡中“代码”组中的“Visual Basic”按钮 按 Alt + F11 组合键,进入VBE,“开发工具”选项卡,默认情况下,“开发工具”选项卡没有显示在功能区,可通过“自定义功能区”设置将其显示,工程资源管理器窗口,代码窗口,属性窗口,立即窗口,本地窗口,VBA工程,工作表对象,工作簿对象,窗体,模块,了解几个概念,添加模块,菜单栏“插入”|“模块”命令,添加过程,在模块中添加过程,最常见的结构如下: 可以通过“插入”|“过程”对话框,Sub 过程名( ) 程序代码 End Sub,第一个VBA程序,添加一个模块,再添
3、加一个子过程,如下: 运行该过程查看结果,Sub Test1() Range(A1).Value = Hello, World! End Sub,如何引用单元格中的值,两种方法: Cells(行号, 列号).Value 如:Cells(5, 3).Value,表示引用的是C5单元格 Range(单元格地址).Value 如:Range(“C5”).Value,表示引用的也是C5单元格,一开始直接写VBA代码有点困难?,录制宏很好用哦,什么是宏?(P.1),具体学习VBA之前,先来了解一下“宏” 宏是通过一次单击就可以应用的命令集,一般用于自动执行一系列重复性操作,以提高工作效率 本质上宏是保存
4、在 Visual Basic 模块中的一组代码 例:将认识宏工作簿Sheet1工作表中的A1单元格设置成绿色底纹的格式,创建宏(P.1),使用宏录入器录制宏,步骤如下: 在“开发工具”选项卡上的“代码”组中,单击“录制宏” 在弹出的“录制新宏”对话框中进行设置后再单击“确定”开始录制。 在工作表中执行某些操作。 在“开发工具”选项卡上的“代码”组中,单击“停止录制”。 实践:录制一个修改单元格底纹的宏,保存带宏的工作簿,保存带宏的工作簿时会弹出如下信息框,需要将工作簿保存为“启用宏的工作簿(.xlsm)” 单击“否”按钮,弹出“另存为”对话框 在“保存类型”下拉列表框中选择“Excel启用宏的
5、工作簿(.xlsm)”进行保存,执行宏方法1(P.2),使用“宏”对话框 选择“开发工具”选项卡,在“代码”组中单击“宏”按钮,弹出“宏”对话框 单击“执行”按钮,执行宏方法2,为宏指定快捷键 录制宏时可以指定 在“宏”对话框中选中要设置的宏,单击“选项”按钮,执行宏方法3,将宏命令添加至功能区或快速工具栏,运行宏方法4,将宏指定到工作表上的按钮(或其它图形对象) 插入表单按钮控件 为表单按钮控件指定宏,实践,自己录制一个设置单元格边框的宏,并用以上四种方法运行录制的宏 思考:宏的本质是什么?,查看宏代码,选择“开发工具”选项卡,在“代码”组中单击“宏”按钮,弹出“宏”对话框 单击“编辑”按钮
6、,查看宏代码,VBA过程代码,“设置底纹”是宏的名称,查看宏代码,Sub 设置底纹() 设置底纹 宏 With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5287936 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub,说明 一个宏就是一个 sub 过程 单引号后为注释内容,不是代码部分 With 语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称 Selection.Interior表示“选定区域
7、的内部”对象 Pattern等为interior对象的属性,使用帮助:选择某个关键字,按F1可弹出帮助系统!,实践,自动排序(P.17 操作题(3) 自动累计 自动完成高级筛选(P.17 操作题(4) 高级筛选,Thank You,VBA编程基础,本讲内容,变量,一个问题:如何交换两个杯子中的可乐?,变量,如何交换A1和B1两个单元格的值? Sub Test() x = Range(A1).Value Range(A1).Value = Range(B1).Value Range(B1).Value = x End Sub,变量,变量 是指在程序运行过程中其值可以改变的量 说明(P.22):
8、变量用于存储程序运行中的临时数据 变量有一定类型,占用一定空间 变量命名规则:字母打头,最长255个字符。等如:Sum、x_1等,数据类型,数据是指可以被计算机处理的信息,是程序的必要组成部分,也是程序处理的对象 数据分类的目的是为了快速处理数据和有效利用存储空间 不同的数据类型占用的存储空间不同、或者存储格式不一样,VBA中常用的数据类型:数值型、字符型、逻辑型、对象型,数据类型,数据类型,数据类型,变量声明,变量声明的目的是说明变量的作用域和变量的类型,以便为变量分配内存空间和及时回收内存空间 建议变量先声明再使用,在通用声明中写Option Explicit语句,变量声明,变量类型的显式
9、说明:Dim语句,语法: Dim 变量名 As 数据类型, 变量名As 数据类型 举例: Dim a As Single Dim intCount As Integer, strPhone As String * 8 如何将 i 和 j 声明为整型变量? Dim i, j As Integer Dim i As Integer, j As Integer,实践,编写一个宏,以A1单元格中的数值作为半径,求出圆的周长与面积,并将它们分别写入B1单元格和B2单元格,常量,除了变量,数据还可以分为常量。常量是指在程序执行之前就已经确定了值,并且在程序执行过程中,其值不会发生改变的量 VBA中有三种形
10、式的常量: 直接常量 符号常量 系统常量,常量,直接常量 也叫一般常量,用户直接书写的值,如:18、1.25、”China”、True、False 符号常量 用符号表示的常量,定义格式如下: Const 常量名 As 数据类型 = 常量表达式 如 :Const PI = 3.1415926 使用符号常量可以减少程序出错的可能性,加快程序的修改和提高程序的可读性,常量,系统常量 VBA提供的系统内部已经定义好的常量,可以直接使用,分为VBA系统常量和Excel系统常量 VBA系统常量以小写字母“vb”开头,例如色彩常量“vbBlack”表示黑色。Excel系统常量通常以小写字母“xl”开头 系统
11、常数采用大小写混合的格式,用户可以通过在VBE中单击“视图”菜单下的“对象浏览器”命令,在打开的“对象浏览器”中查看系统常量的具体值,运算符与表达式,运算符是对特定数据执行运算任务的操作符 将常量、变量和函数等用运算符连接起来的运算式称为表达式 常见的4种基本运算符: 算术运算符 连接运算符 比较运算符 逻辑运算符,算术运算符,说明: / :浮点除法,如10/3的结果为3.3333333 :整数除法,若操作数不是整数,则通过舍去小数 部分再进行整除,如103的结果为3,11.64的结 果为3 Mod:取模运算,返回两个数(若是浮点数则四舍五入 为整数)相除的余数,如12 Mod 5的结果为2,
12、19 Mod 6.7 的结果为5 :指数运算,进行乘幂运算,如32的结果为9,算术表达式,算术表达式与数学表达式的区别 不能漏写运算符,如3xy应写为3 * x * y 算术表达式中使用的括号都是圆括号,如 (a - b) 2 + (a + b) 2) * c 算术运算符的优先级: ()、* / 、 、 MOD、+ - 练习: 表达式 2 3 / 3 Mod 9 4的值为?,答案:1,连接运算符,连接运算符用来连接两个以上的字符串,使其成为一个单一的字符串。VBA中有两个: & 运算符。任何非字符串变量或表达式在进行&连接前都会被转换为字符串,如 + 运算符。操作数都是字符串时才可以进行连接运
13、算,如,Visual & Basic 的结果为 Visual Basic Excel & 2010 的结果为 Excel 2010 4 & 5的结果为字符串 45,Visual + Basic 的结果为Visual Basic Excel + 2010 运行结果出错,提示“类型不匹配” 4+5的结果为整数9,关系运算符,关系运算符用于比较数据的大小关系,主要有: =、=、 dog ? 101 99 ?,逻辑运算符,常用的逻辑运算符有: And 逻辑与 Or 逻辑或 Not 逻辑非 优先级:Not AndOr,实践,编写一个宏,针对A1单元格中输入的某个个年份数据进行判断,并以“闰年”或“平年”
14、为结论写入到B1单元格中 闰年的判断条件:能被4整除但不能被100整除,或者能被400整除,With 语句,编写一个宏,设置A1单元格的文字属性为宋体、14磅、粗体、字体颜色为红色?,对象重复书写,With语句,作用:简化代码,不需要输入重复的内容 格式: 实践:改写过程“字体格式”?,With 对象 .属性1=属性值1 .属性2=属性值2 .属性n=属性值n End With,常用的VBA函数,Int(x)函数 返回不大于x的整数 如:Int(5.8)的结果为5,Int(-5.8)的结果为-6 Rnd()函数 返回一个0, 1)之间的随机浮点数 若要返回一个m, n之间的随机整数,则可以使用
15、公式:Int(Rnd() * (n - m + 1) + m 在调用 Rnd 函数之前,应先使用无参数的 Randomize 语句初始化随机数生成器,实践,编写一个宏,先在A1单元格中生成一个10, 99之间的随机整数,然后识别该整数是奇数还是偶数,并将识别结果写入到B1单元格,常用的VBA函数,Val(s)函数 返回s中第一个非数字字符之前的数字(忽略空格) 例如:Val(“ 1615 198th Street N.E.”)的返回值为1615198 可以把 Val(s) 当作是一个将数字文本转换成数字数值的函数,常用的VBA函数,InputBox 函数 作用:产生输入对话框,向计算机提供信息
16、,输入数据 格式: 变量 = InputBox(提示信息,对话框标题,默认值) 返回值:输入框中输入的内容,字符型,常用的VBA函数,MsgBox 函数 作用:产生消息框,向用户输出提示信息 格式: 变量=MsgBox(提示信息, 类型, 对话框标题) 对话框类型一般由“图表样式”+“按钮样式”+“默认按钮”组成 返回值:整型,对应用户单击的按钮,实践,编写一个宏,使用输入框从键盘输入三个整数,然后找出三个数中的最大数,并用消息框输出,VBA 程序控制结构,判断结构,本讲内容,程序控制结构,程序一般是按照书写的顺序执行的,但有时候需要按照不同的条件执行不同的操作,这就是流程控制 VBA中程序的
17、控制结构分为:,顺序结构,A,B,选择结构,P,A,B,循环结构,P,A,判断语句,判断语句用来根据条件表达式的结果控制程序的流程,If 语句,行结构 If Then Else 块结构 If Then Else End If,If 语句,流程图:,If 语句,实例: 设计一个找出两个数中更大数的程序,界面设计如下图所示。在 B1 和 B2 单元格分别输入任意一个数,单击“更大数”圆角矩形时,在 B3 单元格输出两数中更大的数,If 语句,实践1: 设计一个找出三个数中最大数的程序,界面设计如下图所示。在 B1、B2 和 B3 单元格分别输入任意一个数,单击“最大数”圆角矩形时,在 B4 单元格
18、输出三个数中更大的数,If 语句,实践2: 编写一个过程,用输入框 InputBox 函数输一个学生的成绩,然后判断此学生的成绩是否合格,并将评判结果以“成绩合格”或“成绩不合格”用消息框显示,If 语句,实例: 设计一个“健康秤”程序,界面设计如下图所示。单击“健康状况”按钮,根据公式:标准体重 = 身高 - 105 判断某人的健康状况。体重高于标准体重*1.1为偏胖,在 B3 单元格输出“偏胖,注意节食”;体重低于标准体重*0.9为偏瘦,在 B3 单元格输出“偏瘦,增加营养”;其它则在 B3 单元格输出“正常,继续保持”,If Then Else If Then Else End If E
19、nd If,嵌套的If语句,If 语句,实践3: 编写一个过程,用InputBox函数输入某门课程的百分制成绩x,然后将其按下表的评定条件转换成等级制成绩y,并将等级制成绩用MsgBox函数输出,分支较多时,嵌套的If语句太烦?,If 语句,If Then ElseIf Then ElseIf Then Else End If,If 语句,ElseIf 语句的流程图:,If 语句,重新实现“实践3”?,If 语句,实践4: 根据杭州的气候特点,通常认定3月5月为春季,6月8月为夏季,9月11月为秋季,12月次年2月为冬季。编写一个程序,在B1单元格输入当前的月份,单击“判定”按钮时,在B2单元
20、格以“*月是*季”的形式输出结果,Select Case语句,Select Case Case Case Case Else End Select : 算术表达式或字符表达式,测试对象 : 下列格式中的一个或多个(,) 精确表示:,,如:1, 3, 5, 7, 9 范围表示: To ,如:A To Z 关系表示:Is ,如:Is = 60,功能: 根据测试表达式的值,从多个语句块中选择符合条件的一个语句块执行!,Select Case 语句,重新实现“实践4”?,Select Case 语句,实践: 使用 Select Case 语句重新实现“实践3”程序?,Select Case 语句,实践
21、: 某商场举行周年庆购物促销活动,活动规则如下: 金额500元以下不享受优惠 金额500元及以上且小于2000元优惠10% 金额2000元及以上且小于4000元优惠12% 金额4000元及以上且小于6000元优惠14% 金额6000元及以上优惠15% 编写一个过程,输入购物总价,计算应付款和优惠款额,Thank You,VBA 程序控制结构,For.Next 循环语句 Exit 语句,本讲内容,一个问题,某商场约定其某款产品的销售单价(原价为100元)根据不同的购买数量有不同的折扣(如下表所示),试编写一个VBA过程,计算产品销售单价工作簿中该产品各销售数量情况下的折扣过的销售单价,循环结构,
22、当程序中有规律地重复执行某些操作时,可以用循环结构实现 循环结构的执行过程,总是在一定条件的控制下对循环体进行重复操作,当满足某一终止条件时停止循环,并结束循环退出,ForNext语句,功能:以指定的次数重复执行循环体 格式: For 变量 = 初值 To 终值 Step 步长 语句块 Exit For 语句块 Next 变量 变量又称循环控制变量、计数器变量,初值为循环起始值,终值为循环的结束值 步长为循环控制变量的每次改变增量,缺省为1 Exit For为强制退出循环语句,ForNext语句,计算产品折扣后的销售单价?,ForNext语句,实例1: 求 s = 1 + 2 + 3 + +
23、100 ? 利用赋值语句可写出如下形式的代码:s = 0s = s + 1s = s + 2s = s + 3 s = s + 100 实际上重复了同一个操作:s = s + i,只是 i 每次都增加 1,ForNext语句,实践1: 编写一个宏,使用 InputBox 函数输入一个正整数 n,然后计算 n 的阶乘(n!),并将计算结果用 MsgBox 函数输出?,ForNext语句,实例2: 编写一个宏MySub1,在Sheet1工作表的A1:A10区域各单元格中分别随机生成10, 99之间的整数;再编写一个宏MySub2,在Sheet1工作表的A1:A10区域中,将偶数所在的单元格设置为黄
24、色背景,ForNext语句,实践2: 编写一个宏MySub1,在Sheet1工作表的A1:J1区域各单元格中分别随机生成100, 999之间的整数;再编写一个宏MySub2,在Sheet1工作表的A1:J1区域中,将奇数所在的单元格设置为红色字体,退出循环?,Exit 语句(P.32),Exit For 语句,用于跳出 For 循环以提前终止循环,例如: Exit 语句一般与 If 语句结合使用 另外,Exit Do 语句可以用于跳出 DoLoop 循环,Exit 语句,另外,Exit 语句还可以退出过程、函数 Exit Sub Exit Function,实例3,Exit 语句,实践3: 小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 编程 应用 基础 完整版 课件 全套 ppt 教学 教程 整套 电子 教案 讲义 最新
限制150内