VBA程序设计基础Word文档下载推荐.docx

上传人:b****3 文档编号:16556295 上传时间:2022-11-24 格式:DOCX 页数:18 大小:23.56KB
下载 相关 举报
VBA程序设计基础Word文档下载推荐.docx_第1页
第1页 / 共18页
VBA程序设计基础Word文档下载推荐.docx_第2页
第2页 / 共18页
VBA程序设计基础Word文档下载推荐.docx_第3页
第3页 / 共18页
VBA程序设计基础Word文档下载推荐.docx_第4页
第4页 / 共18页
VBA程序设计基础Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

VBA程序设计基础Word文档下载推荐.docx

《VBA程序设计基础Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VBA程序设计基础Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

VBA程序设计基础Word文档下载推荐.docx

当单击该按钮时计算出这个正整数的阶乘,并在第二个文本框中显示计算结果。

步骤:

1、新建一个窗体,拖入两个文本框和一个命令按钮,名称为文本1、文本2、命令0(这三

个控件名称后面程序中要引用,所以一定要命名!

2、选中按钮,打开其属性窗口,在“事件”选项下的“单击”一栏,选“事件过程”,单

击后面的按钮,输入如下程序:

1、程序中变量在使用前要先定义,这里计算阶乘,用到的只能是整数,所以定义a、b、

c为整型变量。

(见中间程序部分的第一句:

DimaAsInteger)

2、单引号后面的是程序的注释语句,只起说明的作用,程序并不执行它。

不输入这些

语句,程序照样正常运行。

(见绿色部分)

3、输入程序时可以用小写字母输入单词,但每一个关键词的第一个字母计算机会自动

变成大写。

(见程序中蓝色部分)

4、程序一般一句一行,也可多个句子写在一行,中间用冒号隔开;

如果一句太长,需

要分成多行,可在上一行的最后加下划线“_”,系统就会把上下两行连在一起做为

一个语句。

3、关闭程序编辑窗口,切换到窗体视图,我们输入5,单击“计算”按钮,则会显示120,

(实际上,5!

=1×

5,计算结果是120)

二、程序的输入输入出语句

(1)InputBox函数

格式:

InputBox字符串1,[字符串2],[字符串3]

功能:

显示一个输入对话框,等待用户输入信息或按下按钮。

在按钮事件发生后返回键盘输

入到文本框中的内容,返回值的类型为文本类型,

对话框中的提示信息是字符串1,对话框的标题栏是字符串2,字符串3是输入对话

框中的默认值。

后两个字符串是可选项,可不选。

例9-3在窗体的命令按钮中分别加入以下代码,单击按钮后即可看出输入对话框的不同。

PrivateSubCommand0_Click()

InputBox"

请输入学号"

"

学号输入框"

2009"

改成下面程序后的输入对话框:

(2)MsgBox函数

MsgBox字符串1,[按钮参数],[字符串2]

出现一个消息框,字符串1为消息框中的提示信息,按钮参数则决定了消息框中按钮

的类型(见下面按钮参数表),字符串2为消息框的标题栏上信息。

按钮参数表:

常数值按钮类型

vbOKOnly0只显示OK按钮

vbOKCancel1显示OK及Cancel按钮

vbYesNoCancel3显示Yes、No、Cancel按钮

vbQuestion32显示WarningQuery图标

vbExclamation48显示WaringMessage图标

vbInformation64显示InformationMessage图标

vbDefaultButton10第一个按钮是缺省值

vbDefaultButton2256第二个按钮是缺省值

vbDefaultButton3512第三个按钮是缺省值

例9-4在窗体上添加一个命令按钮,当单击该按钮后,显示一个对话框:

(1)提示消息为

“您确定要退出吗?

”。

(2)包含“确定”和“取消”两个命令按钮以及一个询问图标,默

认选择“确定”按钮,(3)对话框的标题栏为“确认退出”

分析:

生成对话框需要用MsgBox函数,包含“确定”和“取消”按钮,对应参数为1(见

上表);

包含一个询问图标,对应参数为32;

默认选择是“确定”按钮(这里的第一个就是

“确定”按钮),对应参数是0,根据题目要求对应的语句应为:

MsgBox“您确定要退出吗?

”,1+32+0,“确认退出”

1、新建一个窗体,添加一个命令按钮,

2、在命令按钮的属性窗口中切换到“事件”选项下,在“单击”一栏中选“事件过程”,

单击这一栏后面的按钮,出现VBA编程窗口,

3、在程序开头和结尾之间添加一句:

”,1+32+0,“确认退出”,

见下图:

4、切换到窗体视图,单击命令按钮,弹出一个消息框,如图:

1、使用参数进行组合时不能互相矛盾,例如不能同时显示“确定”‘“取消”两个按钮和“是”、

“否”、“取消”三个按钮。

2、上面的组合参数可以求和后表示,也可用按钮参数表中对应的常数表示,下面几种形式

均可:

”,33,“确认退出”

”,vbOKCancel+vbQuestion+vbDefaultButton1,“确认退出”

3、当用户点击了不同的按钮,我们可以根据按钮的返回值来判定用户选择了哪个按钮,按

钮返回值如下表:

MsgBox返回值

常数值选择按钮

vbOK1选择了OK

vbCancel2选择了Cancel

vbYes6选择了Yes

vbNo7选择了NO

例9-5在窗体上添加一个命令按钮,当单击该按钮后接受用户输入的三角形三边长,并求

出周长后输出

1、新建一个窗体,添加一个命令按钮command0

2、在命令按钮的属性窗口中为其添加代码:

如图

'

定义a,b,c,s为单精度变量,a,b,c为三边长,s为周长

DimaAsSingle,bAsSingle,cAsSingle,sAsSingle

利用输入对话框接受键盘输入的值,并用Val()函数转把字符串转换成数值

a=Val(InputBox("

请输入三角形的第一个边长:

"

))

b=Val(InputBox("

请输入三角形的第二个边长:

c=Val(InputBox("

请输入三角形的第三个边长:

s=a+b+c

MsgBox"

三角形的周长是:

&

s

3、切换到窗体视图,单击命令按钮,在弹出的对话框中依次输入三个值,例如3、4、5

则弹出一个消息框,显示三边长的结果:

三、赋值语句

变量名=表达式

把右边表达式的值给左边的变量。

例如x=2+1,x=x+1

1、变量要先定义才能使用

2、赋值号两边的数值必须兼容,即数据类型尽量一致。

否则容易出错

例如:

DimxasInteger,yasSingle,zasString‘定义x为整数,y为单精度数,z为文本字符

X=3.5

Y=4

Z=”ACCESS”

第二句x定义为整数,却给了个小数3.5,此时x会取4,

第三句y是单精度数,给了整数4,但系统可以转换成4.000再给变量y,所以是合法的。

第四句z是字符变量,所以等式右边只能赋值一个字符串。

3、等号左边只能有一个变量,右边可以是含这个变量的表达式,

例如x=x+1正确,但x+1=x就不正确了。

4、赋值号右边的计算结果必须在左边变量的表示范围之内,否则系统会提示出错,

DimxasInteger‘定义x为整型变量

x=40000

整型变量x最大只能取值32767,所以40000就超出了整型数据表示的最大值,程序运行

到这一句时,系统会提示出错。

5、变量被两次赋值,则新值冲掉旧值,

例如

x=2

x=3

x=x+2

x=?

例9-6在窗体上添加一个命令按钮,当单击该按钮后接受用户输入的长方形的长和宽,计

算其面积并输出计算结果。

1、新建窗体,并在上面添加一个命令按钮,按钮名称为“命令0”,在按钮上添加代码如下:

定义变量a,b,s为单精度变量,a,b表示长方形的长和宽,S表示面积

DimaAsSingle,bAsSingle,sAsSingle

通过InputBox函数输入边长,同时将文本型数据转换成数值型

请输入长方形的第一个边长:

请输入长方形的第二个边长:

s=a*b

长方形面积为:

2、切换到窗体视图,单击命令按钮,会出现一个输入框,要求你输入长方形的两个边长,

输入边长后,单击“确定”按钮,即弹出一个消息框,显示长方形的面积。

注意:

输入程序代码时,要在英文半角下输入,各关键词之间要有空格(“英文半角”输入

状态下的空格!

四、顺序结构

在高级程序设计语言中,其语句执行都有一定的先后顺序,总体可以分为顺序结构语句

(按语句的先后顺序执行)、条件分支语句(根据条件的成立来确定执行哪一个分支)、循环

语句(某个条件成立时反复执行某一段程序)。

顺序结构是最简单的一种结构,这种结构让语句按先后顺序执行,以完成简单的功能。

例9-7在窗体上放一个命令按钮和两个文本框,在两

A=2

个文本框中分别输入两个不同的值,单击命令按钮后B=3

交换这两个文本框中的数据。

T=A’把A的值放到T中,则T=2

假如a=2,b=3,利用赋值语句总是把等号右边

A=B’把B的值放到A中,则A=3

B=T’把T的值给B,则B=2

值给左边的特性,借助中间变量,可以让a,b的值互换。

1、新建一个窗体,窗体中放两个文本框和一个命令按钮,名称分别是“文本1”、“文本2”、

“命令0”,(在属性窗体设置这些控件的名称,在代码程序中引用)

2、选中命令按钮,在属性窗口中添加这个按钮的代码如下:

DimaAsString,bAsString,tAsString'

定义a,b,t为文本变量

a=文本1.Value

b=文本2.Value

t=a

a=b

b=t

文本1.Value=a

文本2.Value=b

3、切换到窗体视图,在文本框中输入两个值,例如2、3,单击命令按钮,可看到文本框中

两个数实现了交换。

例9-8在窗体上放一个命令按钮和两个文本框,第一个文本框中输入用分钟表示的时间,单

击命令按钮则把这个时间转换成以小时和分钟表示的时间。

1、新建一个窗体,放一个命令按钮和两个文本框,定义按钮和文本框的名称为命令0、文

本1、文本2

2、选中命令按钮,在属性窗口中切换到“事件”选项下,在“单击”栏选“事件过程”,

单击这一栏后面的按钮,输入以下代码:

ConstaAsInteger=60'

声明a为常量60

DimxAsInteger,yAsInteger,zAsInteger'

定义x,y,z为整型变量

x=文本1.Value'

输入的分钟数

y=x\a'

x\a表示“x整除a”的运算,和x/a不同。

z=xModa'

xmoda表示求“x除a的余数”

文本2.Value=y&

小时"

z&

分钟"

注意等式右边用用空格分开各个量。

3、切换到窗体视图下,输入一个分钟数例如:

100,单击命令按钮就可转换成1小时40分

钟。

1、常量的声明:

常量是一种特殊的量,它的值设置后就不能更改或赋于新值,可以在

代码中的任何地方使用常量代替实际的值,对于程序中经常出现的常数值且难以记

忆无明确意义的数值,使用常量声明可增加代码的可读性和可维护性。

Const常量名[as类型名]=表达式

2、本程序中用到几种运算,常见的运算见下表:

符号描述示例

+加

-减

*乘4*3=12

/除7/2=3.5

\整除7\2=3(只取商的整数部分)

Mod求余9Mod6=3

^求幂10^3=1000

五、分支结构

分支结构语句有两种:

if语句和SelectCase语句

(1)if语句

单分支:

if条件表达式then

执行语句1

[Else执行语句2]

Endif

条件表达式成立就执行语句1,不成立就执行语句2

条件语句以if开头,以Endif结束,if和Endif要成对出现。

例9-9在窗体上放一个命令按钮和3个文本框,在前两个文本框中输入两个整数,单击命

令按钮比较这两个文本框中输入的整数的大小,并将较大的数放到第三个文本框。

输入的两个数存放到x,y中,用z存放较大的数:

如果x>

y,则z=x,否则就让z=y

1、新建窗体,放置三个文本框,及一个命令按钮,分别选中这些控件,在属性窗口中设置

文本框及按钮名称为文本1、文本2、文本3、命令0

2、选中按钮,在其属性窗口的中切换到“事件”选项,再在“单击”一栏中选“事件过程”,

DimxAsInteger,yAsInteger,zAsInteger

x=文本1.Value

y=文本2.Value

Ifx>

yThen

z=x

Else

z=y

EndIf

文本3.Value=z

3、切换到窗体视图,在文本框1、2中输入两个数(例如2,6),单击“确定”则在第三个

文本框中显示较大的数。

如果从有三种或三种以上的条件选择1种,则要用下面的条件语句:

If条件表达式1then

Elseif条件表达式2then

执行语句2

⋯⋯

执行语句n

注意书上错误,此处的Elseif没有空格(在Else和if之间)

例9-10在窗体上放一个命令按钮和两个文本框,单击命令按钮根据窗体中“成绩”文本框

输入的成绩,判断成绩等级,并显示在窗体的“等级”文本框中。

判定方法:

85分以上优

秀,75分至85分良好,60至75分及格,60分以下不及格。

由于一个成绩有四个等级选择,所以要用到多种条件选择语句

1、新建一个窗体,放一个命令按钮及两个文本框,在相应的属性窗口设置它们的名称分别

是“命令0”、“成绩”、“等级”

2、在按钮0上添加程序代码如下:

3、关闭程序窗口,切换到窗体视图下,输入不同的分数,单击“确定”按钮后可显示不同

的等级:

多种条件选择语句除了用以上的语句格式外,还有一种更加简洁的分支语句结构SelectCase

语句

(2)SelectCase语句

SelectCase变量表达式

Case表达式列表1

Case表达式列表2

CaseElse

EndSelect

第一句中变量表达式中的值满足哪个表达式列表,就执行哪个语句。

例9-11将例9-10中的if语句改成SelectCase表示。

1、修改命令按钮上程序代码如下:

四、关闭程序窗口,切换到窗体视图下输入不同的成绩值进行调试。

六、循环结构

如果在程序中需要重复执行某段代码,可用循环结构VBA中提供了三种循环结构

(一)Do⋯Loop循环

Do[[While/Until]条件表达式]

中间需要反复执行的语句

称为循环语句体

Loop

根据DoWhile后面的条件表达式来重复执行循环语句体若干次,直到表达式的值不

再成立时,执行Loop后面的语句。

例9-12在窗体上放一个命令按钮,当单击该按钮时,计算1+2+3+100的结果,并利用消息

框显示出来

1、新建一个窗体,添加一个按钮,在属性窗口中设置名称为“命令0”

2、在按钮上添加代码如下:

DimsAsInteger,xAsInteger

s=0:

x=1

DoWhilex<

=100

s=s+x

x=x+1

1+2+...+100的值为:

3、关闭程序编辑窗口,切换到窗体视图,单击命令按钮,则弹出计算结果。

想一想:

如果改成求1×

3⋯×

10的值,该怎样进行?

如果改成在文本框中输入一个值x,求1+2+⋯x的值,该怎样进行?

例9-13在窗体上放一个命令按钮,当单击该命令按钮时,求满足不等式1+2+3+⋯+n<

的最大整数n,并将所求的n输出在消息框中。

(最终满足条件的n为13)

打开例9-12,修改程序如下:

DimsAsInteger,nAsInteger

n=0

DoWhiles<

n=n+1

s=s+n

Loop'

注意退出循环时n(比满足S<

100的那个n)增加了1

满足1+2+⋯+n<

=100的最大整数n为"

n-1

这一题我们也可以利用Do⋯LoopUntil,其功能是直到⋯条件表达式成立退出

例9-14,利用Do⋯LoopUntil改写例9-13

Do

LoopUntils>

100'

(二)For⋯Next循环

For循环变量=初值to终值[step增量]

循环语句体

Next循环变量

其执行过程分以下两步:

(1)循环变量取初值后,执行循环体

(2)到Next循环变量时,循环变量加上增量,看是否超过终值,如超过则退出循环,

否则继续执行循环体。

step1可省略不写(即循环变量增量为1时可省略step项不写)

例9-15编写一个过程,求0到100之间的所有奇数的和

过程就是在程序中反复用到的一小段程序,定义成过程后,后面再用到这段程序只要

输入过程名即可调用这段程序

1、新建一个窗体,添加一个按钮,进入按钮的代码编辑窗口:

修改此处为过程名

L15()

2、在编辑窗口上修改并添加代码如下:

(见上图)

PrivateSubL15()’定义过程L15

DimsAsInteger,iAsInteger

s=0

Fori=1To100Step2

s=s+i

Nexti

1+3+5+...+99="

4、切换到窗体设计视图,选中按钮,在属性窗口中仍然选“事件”选项卡下的“单击事件”

栏中选“事件过程”,在编辑窗口中添加程序如下:

5、切换到窗体视图,单击按钮则调用过程L15,执行过程L15的程序,效果如下:

注:

任何一种循环语句都可以用另一种循环语句代替,上面的FOR⋯Next循环程序用D0

While⋯Loop循环也可行,程序改动如下:

i=1

dowhilei<

100

i=i+2

loop

例9-16编写一个过程,输入一个整数n,然后求1!

+2!

+⋯+n!

,然后在命令按钮中调用

这个过程

仿例9-15即可。

过程程序如下:

PrivateSubPro916()

DimiAsInteger,jAsInteger,nAsInteger

DimtAsLong,sAsLong'

t用来存放阶乘数,s用来存放阶乘的和,由于值太大,所以定义

为长整型变量。

t=1:

n=inputbx("

请输入一个整数n:

Fori=1Ton

t=1'

保证每次阶乘从1开始计算

Forj=1Toi

t=t*j

Nextj

s=s+t

1!

+2!

+...+"

n&

!

="

例9-17编写一个过程,从键盘输入10个数,输出其中的最大数和最小数

本题可使用inputbox函数接受用户输入的数字,由于输入的数据有10个,所以定义

一个包含10个元素的数组A

(1)、A

(2)、⋯A(10)来存放这些数字,变量Max的初始

值放A

(1),然后和A

(2)到A(9)逐个比较,只要有比A

(1)大的数Max就存放这个

数,这样Max就存放出最大的数;

Min的初始值也存放A

(1),然后和A

(2)到A(9)

逐个比较,只要有比A

(1)小的数Min就存放这个数,这样Min就存放出最小的数。

1、窗体上添加一个命令按钮,添加代码如下:

(见下图)

2、选中按钮,添加单击按钮调用过程L17的代码(见上图代码窗口的下半部分代码)

3、切换到窗体,单击命令按钮后,会提示输入数字,先后输入10个不同的数字后,最

后会显示最大数及最小数,(这里可输入1、2、3、7、8、9、10、4、5、6)

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

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1