2013VBA办公软件高级应用深圳大学.ppt_第1页
2013VBA办公软件高级应用深圳大学.ppt_第2页
2013VBA办公软件高级应用深圳大学.ppt_第3页
2013VBA办公软件高级应用深圳大学.ppt_第4页
2013VBA办公软件高级应用深圳大学.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 VBA编程基础,一、VBA的基本概念 VBA-Visual Basic for Application是微软Office集成办公软件的内置编程语言,它是新一代标准宏语言。 VBA寄生于Office应用程序,是Office的重要组件。,利用VBA可以实现如下功能: 使重复的任务自动化 将Office作为开发平台,进行应用软件开发 对数据进行复杂的分析和操作,5.1 VBA概述,VBA与VB的主要区别:,VBA是基于Visual Basic for Windows发展而来VBA是Visual Basic的子集,VBA与VB在结构上十分相似,VBAVB。,VB用于创建标准的应用程序,VBA是

2、使已有的应用程序(Office)自动化。 VB具有自己的开发环境,VBA寄生于已有的应用程序(Office)。 VB开发出的应用程序可以是可执行文件(exe文件),VBA开发的程序必须依赖于它的父应用程序(Office)。,5.1 VBA概述,二、利用宏来编写VBA程序 宏(Macro)是一组VBA语句,可以理解为一个程序段,或一个子程序。 在MS Office 2003中,宏可以直接编写也可以通过录制形成。,5.1 VBA概述,录制宏:将一系列操作过程记录下来并由系统自动转换为VBA语句,这是目前最简单的编程方法。,1.宏安全性 宏病毒:利用宏来传播和感染的一种计算机病毒。为了防止这种病毒,

3、Office软件提供一种安全保护机制。 宏安全性:工具/宏/安全性,5.1 VBA概述,2.宏的录制与保存 录制宏有两种方法: 启用宏录制器来录制宏 在VB编辑器中输入代码创建宏,5.1 VBA概述,例题5-1录制一个简单的宏,其功能是将当前单元格背景置成蓝色。,操作步骤 启动Excel,选定一个单元格 工具/宏/录制新宏 输入宏名填充颜色,单击确定按钮 格式工具栏中选择填充颜色按钮蓝色 单击停止录制按钮,结束宏录制过程,宏的执行:选择一个单元格,选择工具/宏/宏,在对话框中选择填充颜色,单击执行按钮。,5.1 VBA概述,3.宏代码的分析与编辑 工具/宏/宏填充颜色编辑VBA编辑器窗口。,S

4、ub 填充颜色() 填充颜色 Macro 宏由wzq录制,时间: 2011-5-23 With Selection.Interior .ColorIndex = 5 .Pattern = xlSolid End With End Sub,5.1 VBA概述,代码分析,5.1 VBA概述,代码编辑:,Sub 填充颜色() Selection.Interior.ColorIndex = 5 End Sub,Sub 填充颜色() With Selection.Interior .ColorIndex = 5 End With End Sub,Sub 填充颜色() Range(A5).Select S

5、election.Interior.ColorIndex = 5 End Sub,5.1 VBA概述,Sub 填充颜色() Range(A1).Select Selection.Interior.ColorIndex = 1 Range(A2).Select Selection.Interior.ColorIndex = 2 Range(A3).Select Selection.Interior.ColorIndex = 3 Range(A4).Select Selection.Interior.ColorIndex = 4 Range(A5).Select Selection.Interio

6、r.ColorIndex = 5 Range(A6).Select Selection.Interior.ColorIndex = 6 Range(A7).Select Selection.Interior.ColorIndex = 7 End Sub,5.1 VBA概述,Sub 填充颜色() For k = 1 To 7 c = A & k Range(c).Select Selection.Interior .ColorIndex = k Next End Sub,5.1 VBA概述,循环控制语句ForNext的语法形式: For 循环变量=初值 To 终值 Step 步长 Next 循环

7、变量,功能:循环语句执行时,首先给循环变量置初值,如果循环变量的值没有超过终值,则执行循环体,到Next时把步长加到循环变量中,若没有超过终值再循环,直到循环变量的值超过终值时才结束循环。,循环嵌套:可以将一个ForNext循环放置在另一个ForNext循环中,每个循环中要使用不同的循环变量名。,5.1 VBA概述,例如:For I=1 To 9 For J=1 To 9 Next J Next I,许多过程可录制宏来完成,但录制的宏不具备判断或循环功能,人机交互能力差。 宏的录制、编辑、运行等Visual Basic编辑器,三、执行宏的其他方式 工具/宏/宏选择宏名执行 给宏指定快捷键执行快

8、捷键 1.用按钮执行宏 窗体工具栏单击所需控件 画出一矩形自动显示指定宏对话框 选择所需宏的名称确定 将控件标题直接改为宏的名称,5.1 VBA概述,2.用工具栏按钮执行宏 工具/自定义自定义对话框 命令选项卡类别列表框/宏 命令列表框将自定义按钮拖到任意一个工具栏上 右击该按钮/指定宏选择所需宏名 单击关闭按钮关闭自定义对话框,5.1 VBA概述,若要从工具栏中删除自定义按钮,选择工具/自定义显示自定义对话框,用鼠标将按钮从工具栏中拖出。,例题5-2编制一个简单的VBA控制台程序,程序运行后输出“Hello, World!”,Sub 第1个VBA程序() MsgBox Hello, Worl

9、d!, vbOKOnly, VBA控制台程序 End Sub,操作步骤 启动Excel,工具/宏/宏 输入宏名第1个VBA程序,单击创建按钮 模块编辑窗口,5.1 VBA概述,录制宏编写简单的VBA程序。 通过对简单程序的分析,了解一些编程的基本概念和几条语句的功能。 进一步开发Excel的功能,编写各种满足用户需要的程序。 掌握VBA的语法、变量 数据类型、运算符,5.2 变量和运算符,一、变量和数据类型 1.变量 变量:用于临时保存数据。,5.2 变量和运算符,例题5-3在宏代码中使用变量。 带姓名的Hello程序,Visual Basic编辑器 Sub Hello() s_name =

10、InputBox(请输入您的名字:) MsgBox Hello, & s_name & ! End Sub,2.变量的数据类型 变量的数据类型决定变量允许保存何种类型的数据。,5.2 变量和运算符,5.2 变量和运算符,进行程序设计时,应选择占据存储空间尽量小的变量类型来保存所需要的数据。但选择变量类型时留有一定余地也是必要的。,3.声明变量 变量在使用前,最好进行声明,即定义变量的数据类型,这样可以提高程序的可读性和节省存储空间。 若变量不经声明直接使用,系统会自动将变量定义为Variant类型。,5.2 变量和运算符,通常使用Dim语句来声明变量,如 Dim strName As Stri

11、ng (本过程使用) Public strName As String (本工程所有过程使用),变量命名规则:变量名必须以字母开始并且只能包含字母、数字和某些特定的字符最大长度为255个字符。,5.2 变量和运算符,可以在一个语句中声明几个变量,如 Dim intX As Integer, intY As Integer, intZ As Integer 变量intX,intY,intZ被声明为Integer类型,Dim intX,intY,intZ As Integer 变量intX和intY被声明为Variant,intZ被声明为Integer,4.常量 变量用来存储动态数据,静态数据可用

12、常量来表示,如圆周率用PI表示。 要声明常量并设置常量的值,需要使用Const语句,如 Const PI As Single=3.1415926,5.2 变量和运算符,常量通常用全大写字母以区别于变量。常量声明后,就不能对它赋予新值。,二、运算符,5.2 变量和运算符,运算符优先级别(由高到低): 括号指数一元减乘法和除法整除求余加法和减法连接比较逻辑(Not,And,Or),例如:196=3 19 mod 6=1 32=9,5.2 变量和运算符,又如:A=10 B=8 C=6 设置变量初值 MyCheck=AB And BC 返回True MyCheck=Not(AB) 返回False,再如

13、:MyStr=“Hello”&”World” 返回Hwllo World MyStr=“Check”& 123 返回Check 123 MyNumber=“34”+6 返回40 MyNumber=“34”+”6” 返回346,例题5-4百钱买百鸡问题。 假设公鸡每只5元,母鸡每只3元,小鸡3只1元。要求用100元钱买100只鸡,问公鸡、母鸡和小鸡可各买多少只?,5.2 变量和运算符,分析:设公鸡数、母鸡数和小鸡数分别为x,y,z, 则可列出下列方程组。,这里有3个未知数,2个方程式,说明有多个解。可以用穷举法。,编程:工具/宏/宏宏对话框输入宏名“百钱百鸡”创建按钮进入VBA编辑环境。,5.2

14、 变量和运算符,Sub 百钱百鸡() For x = 0 To 19 For y = 0 To 33 z = 100 - x - y If 5 * x + 3 * y + z / 3 = 100 Then g = g & 公鸡 & x & ,母鸡 & y & ,小鸡 & z & Chr(10) End If Next y Next x MsgBox (g) End Sub,Chr(10)函数:将ASCII码10转换为控制字符-回车符。,分支语句ifthen的语法形式: if then else end if,5.2 变量和运算符,功能:条件是一个关系表达式或逻辑表达式,若其值为真,则执行the

15、n后面的语句组;若条件的值为假,执行else后面的语句组,然后继续执行下一个语句。,分支语句ifthen的另一语法形式: if then elseif then else end if,5.2 变量和运算符,若条件1表达式为真,则执行紧接在then后面的语句组1;若条件1表达式为假,则检测下一个elseif或执行else后面的语句组n,然后继续执行下一个语句。,VBA是面向对象的编程语言和开发工具,编程时常用到对象、属性、事件和方法。 一、对象 对象:客观世界中的任何实体。,5.3 面向对象程序设计,从软件的角度看,对象是将数据和操作过程结合在一起的数据结构,或是具有属性和方法的集合体。 属性

16、:用来表示对象的状态; 方法:描述对象行为的过程。,Windows:窗口、菜单、文本框、按钮对象 对象有大小,可容纳其他对象容器对象,对象是VBA程序的基础,几乎所有操作都与对象有关。Excel的工作簿、工作表和单元格都是对象。 VBA中绝大多数对象具有可视性,即有能看得见的直观属性,如大小、颜色和位置等。,5.3 面向对象程序设计,二、属性 属性:对象的性质,如大小、位置、颜色和字体等。,5.3 面向对象程序设计,每个对象都有若干个属性,每个属性都有一个预先设置的默认值,多数不需修改,只有少数属性要修改。同一对象应用在不同的地方,要修改的属性也不同。,对于属性的修改,可拖动鼠标改变其位置和大

17、小,也可在属性窗口中修改,还可在程序中进行修改。,例如,给Sheet1工作表的A8单元格填充蓝色。 Sheets(Sheet1).Range(A8).Interior.ColorIndex=5,三、事件 事件:由系统预先定义并由系统或用户发出的动作。,5.3 面向对象程序设计,事件可由系统引发,比如对象生成时,系统就引发一个Initialize事件; 事件也可由用户引发,比如按钮被单击,对象被拖动、被改变大小,都会引发相应的事件。,事件的行为是由相应的代码决定的。当软件运行时某一事件发生,对应的代码就被执行,完成相应的动作若事件不发生,这段代码就不会被执行。,四、方法 方法:对象可以执行的动作

18、。通常方法带有参数,以限定执行动作的方式。,5.3 面向对象程序设计,例如,打印活动工作表的1-2页1份。 ActiveWindow.SelectedSheets.PrintOut 1,2,1,面向对象程序设计就是要设计一个个对象,将这些对象用某种方式联系起来构成系统,即软件系统。 每个对象需要设计属性,并针对需要的事件编写程序代码,也就是使用系统提供的语句、命令、函数事件和方法等。,例题5-5在Excel中实现定时提醒。 在Office的Application对象中有个方法叫OnTime,用来触发一个程序在特定时刻运行。特定的时刻可以是某个日期的某个时间,也可以是相对于某个时刻的时间值。,5.3 面向对象程序设计,操作过程: 在Excel中选择工具/宏/宏命令, 在宏对话框中输入宏名ds,然后单击创建按钮,进行VBA编辑环境。,5.3 面向对象程序设计,Sub ds() Application.OnTime TimeValue(21:00:00), my_msg End Sub Sub my_msg() MsgBox 现在是21点, 您有个约会!

温馨提示

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

评论

0/150

提交评论