VBA程序设计基础 2.docx

上传人:b****6 文档编号:13363563 上传时间:2023-06-13 格式:DOCX 页数:57 大小:39.85KB
下载 相关 举报
VBA程序设计基础 2.docx_第1页
第1页 / 共57页
VBA程序设计基础 2.docx_第2页
第2页 / 共57页
VBA程序设计基础 2.docx_第3页
第3页 / 共57页
VBA程序设计基础 2.docx_第4页
第4页 / 共57页
VBA程序设计基础 2.docx_第5页
第5页 / 共57页
VBA程序设计基础 2.docx_第6页
第6页 / 共57页
VBA程序设计基础 2.docx_第7页
第7页 / 共57页
VBA程序设计基础 2.docx_第8页
第8页 / 共57页
VBA程序设计基础 2.docx_第9页
第9页 / 共57页
VBA程序设计基础 2.docx_第10页
第10页 / 共57页
VBA程序设计基础 2.docx_第11页
第11页 / 共57页
VBA程序设计基础 2.docx_第12页
第12页 / 共57页
VBA程序设计基础 2.docx_第13页
第13页 / 共57页
VBA程序设计基础 2.docx_第14页
第14页 / 共57页
VBA程序设计基础 2.docx_第15页
第15页 / 共57页
VBA程序设计基础 2.docx_第16页
第16页 / 共57页
VBA程序设计基础 2.docx_第17页
第17页 / 共57页
VBA程序设计基础 2.docx_第18页
第18页 / 共57页
VBA程序设计基础 2.docx_第19页
第19页 / 共57页
VBA程序设计基础 2.docx_第20页
第20页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VBA程序设计基础 2.docx

《VBA程序设计基础 2.docx》由会员分享,可在线阅读,更多相关《VBA程序设计基础 2.docx(57页珍藏版)》请在冰点文库上搜索。

VBA程序设计基础 2.docx

VBA程序设计基础2

第一章VBA程序设计基础

●VBA程序设计集成环境

工程资源管理器、属性窗体、对象窗体、代码窗体、工具箱

立即窗口:

Debug

●基本概念

控件:

工具箱里的对象

对象:

菜单、窗体、控件等

属性:

对象的特征

Name:

名称,编程时使用Caption:

标识,给用户看

Forecolor:

前景色Backcolor:

背景色Backstyle:

透明/不透明

Width:

宽度Height:

高度

事件:

对象能识别的操作,是对象承受的操作

Click,Dblclick

方法:

对象执行的操作,动作是对象发出的

Print

事件处理子程序

PrivateSubCommandButton1_Click()

Debug.Print1+1

EndSub

事件处理子程序的运行:

从上到下逐行执行,直至End

事件处理子程序名:

对象名_事件名

事件处理子程序启动:

由事件启动

Sub:

子程序

Private:

私有Public:

公有

●例

例11+1=?

PrivateSubCommandButton1_Click()

Debug.Print1+1

EndSub

例2窗体的上下左右移动

Left:

对象左上角顶点距屏幕左边界的距离

Top:

对象左上角顶点距屏幕上边界的距离

Left,top是数值型,可以进行算术运算

PrivateSubCommandButton1_Click()

UserForm1.Left=UserForm1.Left-50

EndSub

PrivateSubCommandButton2_Click()

UserForm1.Left=UserForm1.Left+50

EndSub

PrivateSubCommandButton3_Click()

UserForm1.Top=UserForm1.Top-50

EndSub

PrivateSubCommandButton4_Click()

UserForm1.Top=UserForm1.Top+50

EndSub

例3楷体、宋体、隶书、黑体的演示

Font:

字体属性,是文本型。

Font=”宋体”,文本型常量要用英文双引号包围

对象文本框textbox,重要属性text用来放文本

PrivateSubCommandButton1_Click()

TextBox1.Font="宋体"

EndSub

PrivateSubCommandButton2_Click()

TextBox1.Font="楷体"

EndSub

PrivateSubCommandButton3_Click()

TextBox1.Font="隶书"

EndSub

PrivateSubCommandButton4_Click()

TextBox1.Font="黑体"

EndSub

例4粗体,斜体,下划线的演示

粗体:

Fontbold斜体:

Fontitalic下划线:

fontunderline

2-1=1

2>1=True1>2=False关系运算结果是逻辑值

第二章VBA程序设计基础

2.2标准数据类型

标准数据类型是VisualBasic系统定义的数据类型,用户可以直接使用它们来定义常量和变量,表2.1列出了VB中定义的常见标准数据类型。

表2.1VB6.0的标准数据类型

类型

名称

类型符

字节数

取值范围和有效位数

整型

Integer

%

2

精确表示-32768~32767即–215~215-1范围内的整数

长整型

Long

&

4

精确表示-2147483648~2147483647即–231~231-1范围内的整数

单精度浮点型

Single

!

4

-3.402823×1038~3.402823×1038,7位有效位数

双精度浮点型

Double

#

8

-1.79769313486232×10308~1.79769313486232×10308,15位有效位数

货币型

Currency

@

8

-922337203685477.5808~922337203685477.5807

字节型

Byte

1

0~255

变长字符串

String

$

与串长有关

每个字符占1个字节,每个字符串最多可存放约20亿个字符

定长字符串

String*size

Size

size是小于65535的无符号整常数,为字符串长度

逻辑型

Boolean

2

True或False

日期型

Date

8

100.1.1~9999.12.31

对象型

Object

4

任何对象的引用

变体型

Variant

根据实际的情况分配

若存放数值类型数据,占16个字节,最大可达Double的范围。

若存放字符串类型数据,字符串长度与变长字符串相同

对于使用VisualBasic的数据,应注意以下几点:

数据的类型、在内存中的存储形式及占用的字节数、数据的取值范围、能参与的运算、数据的有效范围及其生存周期等。

VB中的整型、长整型、单精度浮点型、双精度浮点型、货币型、字节型数据统称为数值型数据。

2.3常量和变量

数学上遇到x=10x是变量,10常量

VB中:

X=10赋值,x是变量,10常量

Userform1.left=200,left是属性变量,200常量

简单变量命名:

英文字符起始,后跟上一串英文、数字、下划线

Xy,x_1a,a1是合法的简单变量名

1a,x-1,a&#是非法的简单变量名

常量和变量都有类型,同表2-1

Integer整型Long长整型Single单精度浮点型

Double双精度浮点型String字符串(“123”,”宋体”)

Boolean逻辑型(true/false)

Date日期型#03/10/2015#

#03/10/2015#-#03/5/2015#=5两个日期之间相差天数

2.4变量的定义

Dimxasinteger,yassingle‘dim定义

定义x为整型,y是单精度浮点型

Dimsasstring

定义s为字符串

注意:

变量应该先定义后使用

2.5赋值语句=号是赋值符号

例:

X=10把常量10赋值给变量x

语法:

左边只能是一个变量名,右边可以是一个表达式

例:

X+y=10错应改为x=10-y

X,y,c=10错应改为

X=10

Y=10

C=10

X=y=10错应改为x=10:

y=10

PrivateSubCommandButton1_Click()

DimxAsInteger,yAsInteger,zAsBoolean

x=10:

y=20

z=x=y

Debug.Printz

EndSub

运行结果:

false

10=x错应改为x=10

例:

X=10

Y=x

Debug.printx,y

结果:

1010

2.6print语句

PrivateSubCommandButton1_Click()

Debug.Print1,3+10,"abcdef"

EndSub

结果:

113abcdef

输出常量/变量和表达式的值,字符串原样照印

 

PrivateSubCommandButton1_Click()

Debug.Print1,3+10,"1+2"

EndSub

运行结果:

1131+2

Print语句的输出格式:

1、分段输出每段14格,段内左对齐

PrivateSubCommandButton1_Click()

Debug.print“123456789012345678901234567890”

Debug.Print1,3+10,"abcdef"

EndSub

运行结果:

123456789012345678901234567890

113abcdef

 

PrivateSubCommandButton1_Click()

Debug.Print"123456789012345678901234567890"

Debug.Print1,3+10,"1+2"

EndSub

123456789012345678901234567890

1131+2

2、紧凑输出不同数值型对象之间空一格

PrivateSubCommandButton1_Click()

Debug.print“123456789012345678901234567890”

Debug.Print1;3+10;"1+2"

EndSub

运行结果:

123456789012345678901234567890

1131+2

3、打印对象之间逗号、分号混用先逗号后分号,即先分段,段内紧凑

PrivateSubCommandButton1_Click()

Debug.print“123456789012345678901234567890”

Debug.Print1;3+10,3;4;5,”1+2”

EndSub

运行结果:

123456789012345678901234567890

1133451+2

PrivateSubCommandButton1_Click()

Dimxassingle,yassingle

X=10

Y=x+100

Debug.print“123456789012345678901234567890”

Debug.Print“x=”;x,”y=”;y

EndSub

程序运行结果:

123456789012345678901234567890

x=10y=110

程序的执行,从上到下逐行执行,直至end!

4、Print语句尾部有逗号或分号

PrivateSubCommandButton1_Click()

Debug.Print-1;3+10‘尾没有,/;自动换行

Debug.print3,4

EndSub

运行结果:

-113

34

PrivateSubCommandButton1_Click()

Debug.print“123456789012345678901234567890”

Debug.Print-1;3+10,‘不换行

Debug.print-3,4

EndSub

运行结果:

123456789012345678901234567890

-113-34

PrivateSubCommandButton1_Click()

Debug.print“123456789012345678901234567890”

Debug.Print-1;3+10;‘不换行

Debug.print-3,4

EndSub

运行结果:

123456789012345678901234567890

-113-34

 

例:

PrivateSubCommandButton1_Click()

Debug.print“123456789012345678901234567890”

Debug.Print-1,-2

Debug.print3;-4

Debug.print5,6,

Debu8g.print7;8;-9

EndSub

运行结果:

1234567890......

-1-2

3-4

5678-9

5空print语句增加一次换行

PrivateSubCommandButton1_Click()

Debug.Print"123456789012345678901234567890"

Debug.Print-1,-2,

Debug.Print

Debug.Print3;-4

EndSub

123456789012345678901234567890

-1-2

3-4

 

2.7VBA的运算符

●算术运算符、算术表达式

^(23:

2^3)->-(取负)->*,/->\(取整6\4=1,11/2=5)->mod(求余4mod2=0,6mod4=2)->+,-

算术运算符里没有=

运算符优先级别由高到低

算术表达式:

由算术运算符把常数、变量、函数等连接起来的式子(算术表达式里也不能有=)

算术运算、算术表达式的值是数值型

数学上:

23+ab

a2+b2转化为VB算术表达式

(2^3+a*b)/(a*a+b*b)注意:

*不能省,()配合好

VB:

2^3+a*b/a*a+b*b对应的数学表达式

ab

23+b+b2

A

PrivateSubCommandButton1_Click()

DimaAsSingle,bAsSingle

a=1:

b=2

Debug.Print(2^3+a*b)/(a*a+b*b)

EndSub

运算结果:

2

 

PrivateSubCommandButton1_Click()

DimaAsSingle,bAsSingle,c!

'c!

相当cassingle

a=1:

b=2

Debug.Printc=(2^3+a*b)/(a*a+b*b)

EndSub

运算结果:

false

应改为:

PrivateSubCommandButton1_Click()

DimaAsSingle,bAsSingle,c!

'c!

相当cassingle

a=1:

b=2

c=(2^3+a*b)/(a*a+b*b)

Debug.Printc

EndSub

数学算术表达式:

X3+y3

X2+2xy+y2转化为vb表达式,所有符号^,*,/,+,分数符号都要写在同一行上,一个符号占一格的中间

VB只能进行计算,不能进行代数运算

 

●字符串运算符和字符串表达式

+/&连接运算字符串连接运算的结果也是字符串

“1234”+”56”=”123456”

“1234”&”56”=”123456”

字符串表达式:

由字符串运算符连接起来的式子

●关系运算符和关系表达式:

>,>=,<,<=,=,<>优先级别相同

关系运算/关系运算表达式的值是逻辑型

1>2=false2>1=true

关系表达式:

由关系运算符连接起来的式子

字符串的关系比较:

“abcde”<“b”=true

单个字符的比较:

ASC码值大者

“0”<”1”<”2”<………….<”9”低

“A”<”B”<”C”<………..<”Z”

“a”<”b”<”c”<………….<”z”高

字符串的关系运算:

自左向右比较第一个不相同字符,大者为大。

“abcde”<“b”=true“ABC”<“AbC”=true

“abcd”>“abc”=true

●逻辑运算符逻辑运算/逻辑表达式的值是逻辑值

Not反->And而且/同时->or或

运算优先级别由高到低

Tandt=t

Tandf=f

Fandt=f

Fandf=f

Tort=t

Torf=t

Fort=t

Forf=f

逻辑表达式:

由逻辑运算符连接起来的式子

数学:

-5

VB:

(-5

当x=-1时:

(-5

当x=10时:

(-5

PrivateSubCommandButton1_Click()

DimxAsSingle

x=-1

Debug.Print(-5

EndSub

'程序的运行从上到下逐行执行,直至

数学:

x<-5或x>10

VB:

(x<-5)or(x>10)逻辑表达式

当x=-9时:

(x<-5)or(x>10)=true

当x=0时:

(x<-5)or(x>10)=false

闰年的条件:

((Xmod4=0)and(xmod100<>0))or(xmod400=0)

表达式中只有()没有[/]或{/}

当x=2012时:

((Xmod4=0)and(xmod100<>0))or(xmod400=0)=true

()->算术运算符->关系运算符->逻辑运算符

 

((Xmod4=0)and(xmod100<>0))or(xmod400=0)

与下面逻辑运算表达相同

Xmod4=0andxmod100<>0orxmod400=0表达式的

运算次序:

1.三个mod运算

2.三个关系=,<>,=

3.And

4.Or

 

PrivateSubCommandButton1_Click()

DimxAsSingle

x=2012

Debug.PrintxMod4=0AndxMod100<>0OrxMod400=0

EndSub

 

2.8常用函数

数学上:

sinx

VB:

SIN(X)vb函数的自变量要放在()中

●输入框函数:

Inputbox()

程序的执行:

由上到下逐行执行,直至end

PrivateSubCommandButton1_Click()

DimxAsString

x=InputBox("提示信息","标题信息","默认值")

Debug.Printx

EndSub

InputBox()函数值是字符串

PrivateSubCommandButton1_Click()

DimxAsInteger

x=Val(InputBox("输入x的值","输入框","100"))

Debug.Printx+10

EndSub'val()把字符串转化为数值型

注意:

输入x的值可以

1、用赋值语句x=100

2、用Inputbox()函数x=Val(InputBox("输入x的值","输入框","100"))

3、用文本框x=Val(TextBox1.Text)

●消息框函数msgbox()

PrivateSubCommandButton1_Click()

DimxAsInteger

x=MsgBox("提示信息",2+32+0,"标题信息")

Debug.Printx

EndSub

MsgBox()函数值是整数型

Message:

消息

 

消息框msgbox可以当语句用,没有返回值,用以输出结果

PrivateSubCommandButton1_Click()

MsgBox"提示信息",2+16+0,"标题信息"

EndSub

注意:

2+16+0,"标题信息"可以省略

 

PrivateSubCommandButton1_Click()

DimxAsInteger

x=10

MsgBox"x="+Str(x)'str()把数值转化为字符串

EndSub

'"x="+Str(x):

"x=10"作为提示信息

消息框输出结果:

x=10

标签框:

它的Caption属性用来显示一段文字

输出x的值:

1.debug.printx

2.文本框输出

PrivateSubCommandButton1_Click()

DimxAsInteger

x=10

textbox1.text=Str(x)'str()把数值转化为字符串

EndSub

3.用msgbox输出

PrivateSubCommandButton1_Click()

DimxAsInteger

x=10

MsgBox"x="+Str(x)'str()把数值转化为字符串

EndSub

4.标签框输出

PrivateSubCommandButton1_Click()

DimxAsInteger

x=10

Label1.Caption="x="+Str(x)'str()把数值转化为字符串

EndSub

PrivateSubCommandButton1_Click()

DimxAsInteger

x=10

Debug.Printx

TextBox1.Text="x="+Str(x)

Label1.Caption="x="+Str(x)

MsgBox"x="+Str(x)

EndSub

 

●其它内置函数函数的自变量用()

数学函数

Abs(x)debug.printabs(-5)

PrivateSubCommandButton1_Click()

Debug.PrintAbs(-5)

EndSub

PrivateSubCommandButton1_Click()

Debug.PrintSin(30*3.14159/180)

EndSub

字符串

PrivateSubCommandButton1_Click()

Debug.PrintLeft("12345",3)

EndSub

 

2.7.6常用内部函数

1.数学函数

(1)Abs(x):

返回x的绝对值。

如Abs(-5)的值为5。

(2)Exp(x):

返回以e为底的x次幂,即ex。

如Exp

(1)的值为2.71828。

(3)Log(x):

返回x的自然对数。

如Log(2.7182818)值为1。

(4)三角函数:

正弦函数Sin(x)、余弦函数Cos(x)、正切函数Tan(x)和反正切函数Atan(x)。

在三角函数中的自变量是以弧度为单位。

如Sin60°应写为sin(60*3.14159/180)。

其他三角函数可以由这四个函数表示,如余切函数可以表示为:

1/Tan(x)。

(5)Sgn(x):

符号函数,当x>0时,Sgn(x)的值为1;当x=0时,Sgn(x)的值为0;x<0时,Sgn(x)的值为-1。

(6)Sqr(x):

返回x的平方根,如Sqr(16)的值为4。

要求自变量x>=0,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2