第一节:标识符
一、 标志符的定义
标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。 1.标志符的命名规则
1)由字母开头,后面接字母、数字或下划线组成,如X,Y_1,XT 张三等。
2)字符长度有一定的规定。
3)不能与 VBA的保留字同名,如 public, private, dim, goto, next, with, integer, single等。
第二节: VBA的数据类型
VBA 共有 12 种数据类型,具体见下表,此外用户还可以根据以下类型用 Type语句自定义数据类型。
数据类型 字符串型String 字节型Byte 布尔型Boolean 整数型Integer 长整数型Long 单精度型Single 双精度型Double 日期型Date 货币型Currency 小数点型Decimal 变体型Variant 对象型Object 类型标识符 $ % & ! # @ 字节 字符长度(0-600) 1 2 2 4 4 8 8 8 14 以上任意类型,可变 4
第三节 变量与常量
常量与变量
常量:值固定的量。 变量:值改变的量。 常量
常量包含以下几种常量: 数值常量
数值常量就是数,各种各样的常数。如整型数、长整型数、定点数、浮点数等 字符串常量
用双引号括起来的即为字符串常量,只要加了双引号,即可视为字符串常量。
如“ABC”、“韶关学院”、“123”等 逻辑型常量
逻辑型常量只有两个值:true(逻辑真)和false(逻辑假)。 日期型常量
前后加#号括起来的即为日期型常量。如:#2004-5-13#。 变量
变量的名:通过变量的名来对应此变量、引用此变量。变量名与变量应一一对应。 变量的命名原则
1. 必须以字母、汉字开头的字母、汉字、数字、下划线组成的
字符串,不能在变量名中出现“。”、空格或者!、#、@、$、%、&。
2. 变量名最长为255个字符。
3. 大小写字母同等对待,不能使用系统保留字。 4. 在同一范围内变量名必须是唯一的。
5. 变量名最好能“见名知义”,以提高程序的可读性。 变量的值:变量(变量名)相当于一个容器,则变量的值就等价于容量中所装的东西。
理解:变量的名与变量的值的关系 变量的赋值:相当于给容器装东西。 赋值语句:变量名=表达式
说明:1.左边是变量名,右边为表达式,不能相反,表达式可是变量、常量、表达式、函数等。
2.“=”为赋值符号。
3.语句的功能为把右边表达式的值赋给左边的变量。(相当
于把右边的东西给装入左边的容器。)
例:x=100 y=“你好!” x=y+100-2
特殊的赋值语句:x=x+1
意义:相当于把X的当前值加上1后,再赋给X变量自己,x原
来的值被新值(加1后的新值)所覆盖。其功能为实现X的值加1。 变量的使用
在使用变量时,必须遵循“先声明,后使用”的原则,变量的声明有显式声明、隐式声明。
显示声明格式:
dim 变量名 [as 数据类型]
说明:dim 声明的变量为动态变量,运行该变量所在的过程时,变量产生。过程结束时,变量消失,变量的值也消失。 例1:
Dim a As Integer
a = a + 1 Print a 例2:
总结:一定能区分常量与变量,建立起变量的概念,知道变量名与变量值的关系。
练习:以下哪些是常量,属于哪种常量,哪些是变量? 姓名 、“性别”、Y、true、72.50、#2004-05-14#、 “123” 123、1.223d4、abc。
第四节 VBA的运算符
定义:运算符是代表 VBA 某种运算功能的符号。 1)赋值运算符:“=”。用来给变量或对象的属性赋值。
2)数算符:
^(指数f运算符):用来作指数运算。 -(负号运算): *(乘法运算):
/(浮点除法运算,运算结果带小数):,如 5/2=2.5 \\(整除运算,运算结果不带小数),如 5\\2=2
Mod(取余运算):如 M MOD N 是求M整除N后的余数。如 5 MOD 2 =1。常用来判断数的整除性,如M MOD N=0,则M能被N整除。
+(加): -(减):
以上算术运算符运算的优先级逐级递减! 3)逻辑运算符 Not(逻辑非运算): And(逻辑与运算): or(逻辑或运算) 4)关系运算符
= (相等)、<>(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
关系运算符常用于表示比较,其结果为一个逻辑值。如果关系表达式成立,则其逻辑值为TRUE,否则为FALSE。
比较规则:
数值型数据:按大小
字符型数据:
单个字符,空格<“A”…“Z”<“a”…“z” 字符串,先比较第一个的大小。 含多种运算符的表达式的综合运算:
当一个表达式出现多种运算符时,其运算顺序为:先数学,后关系,再逻辑。
第五节 VBA的内部函数
函数的格式:函数名(参数)
函数值
内部函数: 1、 数学函数
注意:Sin(X)、Cos(X)、Tan(X)、Atan(x) 三角函数,单位为弧度。
Log(x) 返回 x 的自然对数。 Exp(x)返回 ex Abs(x) 返回绝对值
Int(number)、Fix(number) 都返回参数的整数部分,区别:Int 将 -8.4 转换成 -9,而 Fix 将-8.4 转换成 -8
Sgn(number) 返回一个 Variant (Integer),指出参数的正负号 Sqr(number) 返回一个 Double,指定参数的平方根 Rnd(x)返回 0-1 之间的单精度数据,x 为随机种子
1). 三角函数: Sin(X)、Cos(X)、Tan(X)、Atan(x),其参数为弧度数, 弧度转换为角度的计算公式:(x/180)*3.1415926
2).RND():随机数函数,括号可省。写成rnd。其值的范围为(0,1)。 2、 字符串函数
len():其值为字符串的长度。 例:Len(\"韶关学院\")=4
Len(\"abcdef\")=6
在VBA中采用统一字符编码,一个汉字算一个;一个英文字母也算一个。
left():left(\"韶关学院\",2)=“韶关” right():right(\"韶关学院\“学院” mid():mid(\"韶关学院\,2)=“关学” ltrim():去掉字符串左边多余的空格。 rtrim():去掉字符串右边多余的空格。 trim():去掉字符串左边和右边多余的空格。 解释:
字符串左边多余的空格: “ asd fghj hjk ” 字符串右边多余的空格: string():String(9, \"!\")
space(n):生成由N个空格组成的字符串。 instr(begin,s1,s2):
功能:在母串中查找子串出现的起始位置。如果母串不包含
子串,则函数的值为0。Begin表示在母串中哪个位置开始查找子串。 例:instr(3,“韶关学院”,“学院”) 3、 转换函数
str():数值转换为字符str(123)=“123” val()字符转换为数值 val(“123”)=123 asc():求已知字符的ASC码
chr():已知ASC码,求其所对应的字符。 oct (x):十进制转换为八进制。 hex(x):十进制转换为十六进制。 lcase():转换为小写字符 ucase():转换为大写字符 ccur():类型转换
4、 日期函数
time() timer() now() date() year() month() weekday() day() hour()
minute() second()
在立即窗口中输入函数,求函数的值
? 函数名() 5、 输入输出函数
1. 输入对话框函数inputbox()
格式:变量名=inputbox(提示信息,标题,缺少值,x,y) 功能:在屏幕的x,y位置打开一个输入对话框,对话框的提示信息为括号里的提示信息,对话框的标题为括号中的标题信息。当输入值时,输入的值就会保存在左边的变量中。 例:
aa= InputBox(\"请输入数据\输入数据\",100,123,456) 运行界面如下:
当输入200时,则200就保存在aa变量中,如果没输入,则以缺省值100保存在aa变量中。
2. 输出消息对话框函数msgbox()
变量名=msgbox(提示,按钮,标题)
功能:显示一个消息对话框,提示给用户信息,其中可有若干
个选择按钮和图标。注意:“按钮”设置值及其意义。
5.测试函数(测试函数的返回结果为True或者False)。 IsNumeric(x):测试X是否为数字。 IsDate(x):测试X是否是日期。
IsEmpty(x):测试X是否为 Empty(空值)。 IsArray(x):测试变量是否为一个数组。
第六节 VBA中对象属性方法
一、概念
类:类是对象的抽象,对象是类的实例化、具体化。
对象:对象是类的实例化、具体化。在VBA中,对象也称为控件,出现在集成开发环境中的工具箱中。 VB中的控件 控件的命名和控件值
在VB中,每一个控件都有一个唯一确定的名字,通过名字来对应此控件。
命名的约定:
控件命名原则:通过控件的名字知道控件的类型、控件的的作用。 名字组成:类型符表示控件含义的字符 命名时应遵守的规则:
描述一个对象的三要素:“属性”、“方法”、“事件”。 属性:通过控件的属性来定义控件的外观。 对象属性的描述:
对象名.属性名
对象属性的赋值:
1. 在设计状态,通过属性窗口进行属性值的设定 2. 在运行状态,通过代码动态地改变对象的属性值 格式:对象名.属性名=值
方法:通过控件的方法来定义控件的行为,是一段已经确定好的代码的集合。
方法的调用:对象名.方法名 [参数] 例:
debug.print “您好,欢迎光临!”
事件:事件来定义控件对外部刺激所作的反应。 常见的事件:
click(鼠标单击)、dblclick(鼠标双击) 事件的触发机制:用户触发,系统触发。 事件过程的一般格式: sub 对象名_事件名() 事件响应程序 end sub 说明:
“对象名”是指该对象的name属性的值。
“事件名”是指VAB预先定义好的赋予该对象的事件。 理解事件驱动的含义:
P14页(倒数第四行起) VBA事件程序的执行步骤: 1. 等待事件的发生;
2. 事件发生时,执行其对应的事件过程。 3. 重复步骤1
如此周而复始地执行,直到程序结束。
第二章:VBA基本控制结构
结构化程序设计的三种基本结构:顺序结构、选择结构、循环结构 顺序结构:
执行流程:按语句的先后顺序依次执行。
注意:在顺序结构中,有些语句有严格的先后顺序,编写代码时,须严格遵循它们的先后顺序;有些语句先后顺序无关紧要,则编写代码时,其顺序可不作严格要求。 选择结构:
执行流程:执行到选择结构时,根据选择结构的条件决定程序的执行流程。
选择结构的流程图描述: 选择结构的案例讲述。
1、 编写程序,交换变量A、B的值。(拓展:交换EXCEL工作表中
两个单元格的值)
2、 输入三角的三边,用海仑公式求三角形的面积。 选择结构所对应的语句:
1. 单分支选择语句(If语句)单条件判断 格式1:行 IF 语句 语句:
if 条件 then <语句块1> else <语句块2> 注意:此格式中,语句均须在一行书写。
执行流程: 格式2:
if 条件 then 语句块1 注意:书写格式 执行流程 格式3: if 条件1 then 语句块1 else if 条件2 语句块2 else if条件3 语句块3 …… …… Endif 注意:书写格式,多条件判断。 执行流程 例1:比较A、B两个变量值的大小。并输出较大的变量名及其值。 算法(文字描述): 1. 定义A、B两变量。 2. 输入A、B的值 3. 比较A、B值的大小 4. 如A>=B,则输出“A较大”和A的值,程序结束。 5. 如Aa=inputbox(“请输入A:”) b=inputbox(“请输入B”) If a>=b then Debug.print “A 较大!”,a else debug.print “B 较大!”,b endif 或用行IF语句,则其格式为 If a>=b then debug.print “A 较大!”,a else debug.print “B 较大!”,b 选择结构的嵌套 概念:在一个IF结构中出现另一个IF结构,就叫做选择结构的嵌套 格式: if 条件 then if 条件 then 语句 else 语句 endif else if 条件 then 语句 else 语句 endif endif 注意:if、Else、Endif总是与离它最近的配对。 例2:比较A、B、C三个变量值的大小。并输出较大的变量名及其值。 算法(文字描述): 1. 定义A、B、C三个变量。 2. 输入A、B、C的值。 3. 先比较AB的大小 4. 如果A>=B 成立,则比较AC,如A>=C,则A大,否则C大。 5. 如果A>=B不成立,则比较BC,如B>=C,则B大,否则C大。 6. 程序结束。 程序代码: Dim a As Single, b As Single, c As Single a = InputBox(\"请输入A的值:\") b = InputBox(\"请输入B的值:\") c = InputBox(\"请输入C的值:\") If a >= b Then If a >= c Then Debug.Print \"A较大!\ Else Debug.Print \"C较大!\ End If Else If b >= c Then Debug.Print \"B较大!\ Else Debug.Print \"C较大!\ End If End If 例3:输入三角形的三边,判断其值的有效性,并求出有效三角形的面积。 文字算法:(学生自己写出) 流程图:(学生自己绘制) 程序代码: Dim a As Single, b As Single, c As Single, l As Single, s As Single a = InputBox(\"请输入三角形A边的值:\") b = InputBox(\"请输入三角形B边的值:\") c = InputBox(\"请输入三角形C边的值:\") If a + b > c And a + c > b And b + c > a Then l = (a + b + c) / 2 s = Sqr(l * (l - a) * (l - b) * (l - c)) msgbox \"所求的三角形面积:\" & s Else MsgBox (\"数据输入出错,三边不能构成三角形!\") End If 多条件判断一(用IF语句) if 条件1 then 语句块1 elseif 条件2 语句块2 elseif条件3 语句块3 …… …… Endif 注意: 1:格式。 2:执行流程 案例:输入某学生的成绩,判断其等级。其等级标准为:90-100:“优秀”;80-:“良好”;70-79:“中等”;60-69:“及格”,60分以下:“不及格” 算法:(略) 代码: Sub judge( ) Dim score As Single Score=inputbox(“请输入成绩:”) If score < 60 Then Msgbox \"注意!你的成绩为不及格!\" ElseIf score > 60 And score < 70 Then Msgbox \"你的成绩为及格,需努力!\" ElseIf score > 70 And score < 80 Then Msgbox \"你的成绩为中等,再努力!\" ElseIf score > 80 And score < 90 Then Msgbox \"你的成绩为良好,争取优秀!\" ElseIf score > 90 And score < 100 Then Msgbox \"你的成绩为优秀,祝贺你!\" Else Msgbox \"你的输入有问题!\" End If End Sub 多条件判断二 情况选择语句,也用于多分支选择 格式: select case 表达式 case 表达式1 语句块1 case 表达式2 语句块2 …… case else 语句块N End Select 注意:1:格式 2:执行流程 3:测试表达式的几种形式 a.表达式, 表达式 b.表达式 to 表达式 c.is 关系运算表达式,使用的运算符包括: <、<=、>、>=、<>、= 例: case 1 to 10 测试变量的值落在1到10的范围内,则匹配,符合条件。 case 1 to 5,12 测试变量的值落在1到5的范围内,或者12,则匹配。 case “Xie”,“Li”to Wang” 测试变量的值落为“Xie”,或者落在“Li”到“Wang”的范围内,则匹配。 例:用select语句改写多条件的if语句. 案例:编写程序,要求:输入二元一次方程AX+BX+C=0的系数A、B、C后,判断其解的情况并求其解。 2 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务