第 1节 Visual Basic 概述
1.1 Visual Basic简介
1.2 面向对象的程序设计概念
1.3 事件驱动的程序设计原理
1.4 VB的开发环境
1.5 VB开发应用程序的一般步骤
1.6 VB开发环境的基本操作
Visual Basic 程序设计第二章 VB程序设计基础
Visual Basic 程序设计
1.什么是 VB?
Visual Basic
,Visual” 指的是开发图形用户界面 (GUI) 的方法,即可视化 。
,Basic” 指的是 BASIC (Beginners All-
Purpose Symbolic Instruction Code) 语言,一种在计算技术发展历史上应用得最为广泛的语言 。
有关基本概念:
OLE:对象的链接和嵌入
OOP:面向对象的程序设计方法
1.1 Visual Basic简介
Visual Basic 程序设计
2,Visual Basic 的三种版本学习版 (标准版 ),VB的基础版本,适用于初学者 。
专业版,主要针对计算机专业开发人员 。
企业版,是完备的版本 。
1.1 Visual Basic简介
3,Visual Basic特性
用于开发 Windows环境下应用程序的工具。
VB6.0是 32位操作系统下应用程序的开发工具

采用面向对象的程序设计方法。
采用事件驱动方式的程序设计原理。
Visual Basic 程序设计
对象,指窗体,控件等具有自己的属性,方法和事件的实体 。
属性,对象的静态特征 。
方法,对象所能执行的动作 。
事件,对象的所能识别的动作 。
1.2 面向对象的程序设计概念
Visual Basic 程序设计
1.3 事件驱动的程序设计原理
设计出窗口界面
设置界面中各种对象的属性
为对象规定在被某个,事件,激活时执行的,过程

构成完整的应用程序
Visual Basic 程序设计
1.4 VB的集成开发环境启动 Visual Basic
Visual Basic 集成开发环境菜单条,显示所使用的 Visual Basic 命令 。
工具栏控件箱工程资源管理器窗口,列出当前工程中的窗体和模块

属性窗口,列出对选定窗体和控件的属性设置值 。
对象浏览器,列出工程中有效的对象窗体设计器代码编辑器窗口窗体布局窗口进入 VB环境单击此处编辑母版标题样式
单击此处编辑母版副标题样式工程资源管理器窗口属性窗口窗体 代码显示按钮 窗体显示按钮工具箱窗体布置
VB 6.0集成开发环境
Visual Basic 程序设计
1.5 VB开发应用程序的步骤
1.创建程序的用户界面;
2.设置界面上各个对象的属性;
3.编写对象响应事件的程序代码;
4.保存工程;
5.测试和调试应用程序,检查并排除程序中的错误;
6.创建可执行程序。
第 2节 创建用户界面
2.1 创建窗体
2.2 常用控件
2.3 制作菜单
2.4 示例
Visual Basic 程序设计
Visual Basic 程序设计
2.1 创建窗体窗体 ( Form) 是为了设计 VB应用程序界面或对话框而提供的窗口,
是包容用户界面或对话框所需的各种控件的,容器,。
1.窗体的属性,方法与事件窗体的属性定义了它的外观 ;
窗体的方法定义了它的行为 ;
窗体所能响应的事件定义了它与用户的交互 。
VB为窗体规定了众多的属性、方法与事件。
Visual Basic 程序设计
2.1 创建窗体
1.窗体的属性,方法与事件
窗体和控件一样,都是 VB的对象。
在创建新工程时,VB会自动加入一个缺省属性的空白窗体。用户可以改变这些属性值从而改变窗体的外观和行为
下面介绍窗体常用的属性、方法与事件。
Visual Basic 程序设计
(1) 窗体的常用属性
a,Name:窗体名称 。
窗体名称在程序代码中作为窗体对象的标识名 。
窗体名称可以缺省,名称缺省为 Form1,Form2等 。 窗体名称也可以自定义,如 NewForm,Frma等 。
窗体名称自定义的命名规则:必须以字母或汉字开头,
可以包含数字和下划线,但不能包含空格或标点符号 。
2.1 创建窗体
Visual Basic 程序设计
(1) 窗体的常用属性
b,Caption:窗体标题 。
窗体标题是出现在窗体标题栏的文本内容 。
窗体标题默认与窗体名称相同 。
标题也可以自定义,只要是字符即可,不受其他约束 。
2.1 创建窗体注意,
窗体名称与窗体标题是有区别的。
Visual Basic 程序设计
c,BackColor与 ForeColor:窗体的前景色与背景色。
颜色值用一个长整数表示。点击属性栏右边,会弹出一个颜色设置组合框。
(1) 窗体的常用属性
2.1 创建窗体
d,BorderStyle:边框样式
用数值来表明窗体边框的风格。
Visual Basic 程序设计说明,Font是窗体的一种属性,同时它又被看作一个对象
Font本身还具有 Name,Size,Bold,Italic等属性。
e,Font:正文字体 。
设置窗体上所显示的正文的字体,字号和字形等 。
点击字体属性栏右边的对话框按钮,弹出“字体对话框

(如图)。默认的字体为“宋体、常规、小五号”。
(1) 窗体的常用属性
2.1 创建窗体
Visual Basic 程序设计
f,Icon:图标
设置位于窗体左上角控制盒上的图标
当窗体最小化为任务栏上的按钮时,也使用此图标 。
g,Left,Top,Height,Width:窗体的位置与大小 。
Left,Top为窗体左上角的坐标,Height,Width为窗体的高度和宽度,默认单位为特维 ( Twip,1厘米=
567特维 )
h,Enabled:活动属性
决定窗体能否被访问,当此属性设置为,False”时,
窗口将不能被访问;设置为,True”时,窗口可以被访问 。 默认值为,True”。
(1) 窗体的常用属性
2.1 创建窗体
Visual Basic 程序设计
(2) 窗体的方法窗体可调用多个方法。常用的方法有:
Hide:隐藏窗体 。 (如图 )
Move:把窗体移到某个位置 。
Print:显示文本或数据 。
PrintForm,打印窗体 。
Refresh:强制重新绘制一个窗体 。
Show:显示窗体 。
2.1 创建窗体
Visual Basic 程序设计
(3) 窗体的事件窗体可以响应许多事件 。 常用的事件有:
Click:单击 。
Dbclick:双击 。
Load:装载 。
Resize:调整尺寸 。
Activate:激活 。
Deactivate:失去激活 。
2.1 创建窗体
Visual Basic 程序设计
2.1 创建窗体
2.定制窗体属性方法一:
在设计态,通过“属性”窗口为其设定各种属性值方法二,
在程序代码中改变属性值(运行时改变)
格式,Object.Property = Expression
即,对象名,属性名 = 表达式(属性值)
提示:
如果属性值是字符串,则用西文引号括起来。
Visual Basic 程序设计
2.1 创建窗体
3.引用窗体的方法
VB中的所谓“方法”可使“对象”执行一个动作或任务。
格式,Object.Method 或 Object.Method [Arg1,Arg2··]
即,对象名,方法名或 对象名,方法名 [参数 1,参数 ···]
例,a.显示窗体 NewForm,在程序中加入代码:
NewForm.Show [Style]
表示以,Style”方式 显示,NewForm”窗体,
b.隐藏窗体 NewForm,在程序中加入代码:
NewForm.Hide
表示 隐藏,NewForm”窗体
Visual Basic 程序设计
(1) 装载语句语句格式,Load Object
(2) 卸载语句语句格式,Unload Object
或,Unload Me
(3) End语句语句格式,End
2.1 创建窗体
4.窗体的装载、卸载,End语句注意:
Unload和 End的区别。
①装载语句的作用:把窗体(或其他对象)装入内存但不显示它。
说明:因 VB在执行时会自动装载窗体,引发 Load事件,故一般不用此语句。
②卸载语句作用:把对象从内存卸载,使该对象的属性恢复为设计时的初始值,并引发对象的 Unload事件。
Me 是系统保留字,代表当前窗体,因此 Unload Me
表示将当前窗体从内存中卸载,如果当前窗体是程序唯一的窗体,则将终止程序的运行。
③ End语句作用:终止应用程序的执行,并从内存卸载所有窗体。
2.1 创建窗体
Visual Basic 程序设计
Visual Basic 程序设计
2.1 创建窗体
5.Print方法格式,[Object].Print p1 <s> p2 <s> ··
作用:将文本输出到指定对象上。如果缺省对象,则将内容 输出到当前窗体上。
Print方法中,
p1,p2···是输出项。
s 是输出项之间的分隔符。
逗号分隔符“,”将每一输出项输出到标准分区,每个分区长度为 14;
分号分隔符,;”则将每一输出项紧接着前面一项输出。
Visual Basic 程序设计
2.1 创建窗体
5.Print方法例:在程序代码中增加下列内容:
Print,新北京!” ;“新奥运!”
Print,新北京!”,“新奥运!”
运行程序则在窗体上输出如图:
Visual Basic 程序设计
2.2 常用控件
控件是包含在窗体中的对象。
控件同窗体一样,也是辅助用户快速完成界面设计的有效工具。
控件和窗体组成与用户交互的可视化部件。
VB通过控件箱(工具箱)提供了组成 Windows应用程序窗口或对话框的诸如文本框、列表框、命令按钮等控件。
VB6.0标准版的控件如图:
Visual Basic 程序设计
Pointer指针 Picture图片框
Label标签 TextBox文本框
Frame框架 CommandButton命令按钮
CheckBox复选框 OptionButton单选框
ComboBox组合框 ListBox列表框
H.ScrollBar水平滚动条 V.ScrollBar垂直滚动条
Timer计时器 DriveListBox驱动器列表框
DirListBox文件夹列表框 FileListBox文件列表框
Shape图形 Line线条
Image图像 Date数据控件
OLE控件
2.2 常用控件
Visual Basic 程序设计
1.文本框( TextBox)
用于接收用户在框内输入的信息,或显示由程序提供的信息。
(1)属性
Name,名称,命名规则同窗体名。默认值为
Text1,Text2等。
Text,文本属性,文本属性的值就是用户在文本框中输入的内容。可通过程序获取该属性值。
PasswordChar,密码属性,让用户在文本框内输入口令,指定显示在文本框内的字符。缺省值为空字符串,此时用户可看到输入的字符。如设置属性值为,
*“,则无论输入任何字符都显示星号。
2.2 常用控件
2.2 常用控件
MaxLength,最大长度 。 缺省值 0,可接受任意长度字符串 。
MultiLine:多行属性 。 默认为,False“,只能输入一行文本 。 若为,True“,则可输入多行文本 。 当无水平滚动条时,多行文本会使一个长字符串自动换行 。
Alignment:对齐属性 。 0:左对齐,1:右对齐,2:
文本居中 。
文 本 框 还 有 BorderStyle,Enabled,Font,
ForeColor等属性,其意义同窗体中的属性完全相同 。
Visual Basic 程序设计
Visual Basic 程序设计
1.文本框( TextBox)
(2)方法
SetFocus:设置焦点 ;使光标指向指定的文本框。
Refresh,刷新 。
(3)事件
Change:改变。 当文本框内的文本发生改变时触发该事件。
KeyPress:按下字符键。 按下键盘上的字符键时触发该事件。
2.2 常用控件
Visual Basic 程序设计
2.2 常用控件
2.标签( label)
标签常用作其他控件的说明。
(1) 属性
Font,Name,Caption,Alignment属性:同窗体和文本框
AutoSize属性:
自动缩放,即大小自适应属性。默认为,False“
,若为,True“,根据文本大小自动调整标签宽度

(2) 方法
(3) 事件
Visual Basic 程序设计
3,命令按钮 ( CommandButton)
用来在窗体内添加命令按钮 。 运行时用户单击此按钮,
则执行一段代码 。
(1)属性
Caption:标题,
通常显示按钮的功能 。 在标题文本中的某个英文字符前面插入,&”,该字符即成为命令按钮的访问键
BackColor 背景颜色;
style样式有 Graphical和 Standard两个选项,当选择 Graphical
时允许显示图形。
Picture 图形属性,允许为其表面添加图片
2.2 常用控件
Visual Basic 程序设计
3,命令按钮 ( CommandButton)
(1)属性
Enabled 激活属性;
Font 字体属性;
Index 控件数组标识号属性
Name 名称属性;
Visible 可见性属性;
2.2 常用控件
Visual Basic 程序设计
3,命令按钮 ( CommandButton)
(2)方法
SetFocus:设置焦点设置为焦点的按钮将有一个边框,直接按回车键可执行该按钮所代表的动作 。
(3)事件
Click:单击对于命令按钮来说,单击事件是它最常用,最基本的事件 。
2.2 常用控件
Visual Basic 程序设计
4,列表框 ( ListBox)
列出可供用户选择的项目列表 。 运行时,可用鼠标或箭头键选中其中的一项或多项,选中的项被加亮显示 。
(1)属性
List,列表 。 字符串数组,含有列表框中的全部列表项目 。 [对象名 ].List(0)指向第一项,依次类推 。
Text,文本 。 指列表项中被选中的项 。 其 值 与
List(ListIndex)相同 。
ListCount:列表框中所含项的总数 。
2.2 常用控件
Visual Basic 程序设计
4,列表框 ( ListBox)
ListIndex:选中项的索引号 。 选中第一项值为 0,依次类推 。 无选中项时值为- 1。
Columns,列数 。 指定列表框中的各项是在一列中垂直滚动,还是在多列中水平滚动 。 0表示在一列垂直滚动,
正整数表示多列的列数 。
Sorted,排序 。 取值为,True“时,各项按 ASCII码排序
Selected,选中 。 批示某个项的选中状态 。 如
Select(0)=True表示第一项被选中 。
2.2 常用控件
Visual Basic 程序设计
2.2 常用控件
(2)方法
AddItem:添加列表项。
格式,[对象名 ].AddItem <列表项文本 >[,插入位置序号 ]
举例,List1.AddItem,中国香港”
注意:若不指定插入位置,则插入到列表尾。
RemoveItem:删除列表项 。
格式,[对象名 ].RemoveItem 删除项序号
Clear:删除列表所有项。
(3)事件
Click(单击)
Dbclick(双击)事件( 但很少用)
Visual Basic 程序设计
5.组合框( ComboBox)
组合框是文本框和列表框的组合方式,它包含一个文本框和一个列表框。用户可在文本框部分输入选项,也可用列表框部分选择选项。
(1)属性
2.2 常用控件
Text:文本属性文本属性的值为用户从列表框中选定的文本内容或直接输入文本框中的内容。
Style:外观属性。 组合框有三种外观:
Style=1 Style=2Style=0(默认值 )
Visual Basic 程序设计
2.2 常用控件
Style= 0(默认值)组合框为下拉式组合框。可以直接在文本框内输入你所需要的选项。单击组合框内的箭头,即可打开一个选项列表。当你从列表中选择一个选项后,该选项即出现在组合框中的文本框内,同时关闭选项列表。
Style=1时,为文本框和列表框直接结合的简单组合框
注意:创建简单组合框时,应调整该组合框的高度,使列表框能够显示出来。
Style=2时为没有文本框的下拉式列表框,单击列表框右侧的按钮,文本框才会显示出来,此时文本框只能在列表中选择,不允许输入文本。
Style=1 Style=2Style=0(默认值 )
Visual Basic 程序设计
5.组合框( ComboBox)
(2) 方法,同列表框。
(3) 事件,
Style=0时,响应 Click,Change事件。
Style=1时,响应 DbClick,Change事件 。
Style=2时,响应 Click事件。
2.2 常用控件
Visual Basic 程序设计
6.图像控件 ( Image) 和图片框 ( PictureBox)
图像控件用来显示一个来自硬盘上的位图文件
(,bmp) 或图标文件 (,ico),并可随意调整图形的大小 。
图片框不仅可以显示图形和文本,还可创建动画图形 。
(1) 方法 (picture1.print)
(2) 事件
2.2 常用控件
Visual Basic 程序设计
7.选项按钮 (OptionButtom),复选框 (CheckBox)和框架控件 (Frame)
a.选项按钮与复选框
(1)属性
选项按钮 Value,选中与否标记 。
选项按钮即单选按钮,在一组互斥的选项中,任一时刻,只有一个单选按钮处于被选中状态 。
Value = True 表示选中;默认为 False表示未选中 。
复选框 Value,选中与否标记复选框用于从一组选项中同时选中多个选项 。
默认为 0 表示未选中;
Value=1表示选中;
Value=2表示不能访问 。
(2)方法
(3)事件 Click:单击
2.2 常用控件
Visual Basic 程序设计
7.选项按钮 (OptionButtom),复选框 (CheckBox)和框架控件
(Frame)
b,框架控件,
用作其他控件的容器 。
c.结合框架和选项按钮组 (或复选框组 )
在窗体上可以创建选项组 。
2.2 常用控件在窗体上创建选项组的步骤:
( 1)在窗体上创建框架,设置框架的 Caption属性,
Caption出现在框架的边框上。
( 2)在框架内创建选项按钮组或复选框组。此时如移动框架,创建好的选项按钮组或复选框组将跟随框架作为一个整体一起移动。
Visual Basic 程序设计
2.2 常用控件
8,计时器( Timer)控件
在程序运行时,计时器控件每隔一定的时间间隔就会产生一次 Timer事件 。计时器通常用于背景进程中,在用户界面上是不可见的,但它可以控制过程程序以某一固定的时间间隔运行。
( 1)属性:
Enabled 激活属性
Index 控件数组标识号属性
Name 名称属性
Visual Basic 程序设计
2.2 常用控件
8,计时器( Timer)控件
Interval 时间间隔属性
Interval的默认属性值是 0时,计时器控件无效,其有效取值范围为 1~ 65535之间,其取值越小,则计时器定时事件生成的频率越高,它以千分之一秒为单位指定时间长度,
( 2)事件计时器控件所特有的事件是 Timer,Timer事件预定的时间间隔存储于计时器控件的 Interval属性中。计时器定时检查系统时钟,当经过了规定的时间间隔,就会自动产生 Timer事件。因此,我们可以在 Timer事件过程中处理需要定时处理的事务;
1,菜单概述
菜单条,位于窗体的标题条下 。
菜单,鼠标单击菜单条上菜单标题时,出现的命令列表 。
菜单项,菜单命令 。
子菜单,菜单项的分支菜单 。 凡带有子菜单的菜单项都有一个箭头 。
弹出式菜单,在 Windows中,单击鼠标右键出现的与当前操作有关的菜单 。
2.3 制作菜单
Visual Basic 程序设计
Visual Basic 程序设计
2,使用菜单编辑器
(1)启动菜单编辑器
启动菜单编辑器的方法:先建立或选定一个窗体,然后启动,工具,菜单中的,菜单编辑器,命令或单击
VB窗口工具栏上的,菜单编辑器,按钮,出现如图所示对话框 。
2.3 制作菜单
Visual Basic 程序设计
2.3 制作菜单
(2) 菜单编辑器简介菜单编辑器分为上下两个部分,上半部分用来设置某一菜单项的属性,下半部分是一个大的只读文本框,
用来显示各个菜单项的标题和对应的快捷键。
(3)菜单编辑器中的控件功能如下:
标题框,输入出现在菜单条或菜单中的菜单标题和菜单命令。用,&”设键盘访问。
名称框,用来输入菜单项的名称。以便在程序代码中引用该命令。
索引框,当使用控件数组时,用来输入数组元素的下标。
快捷键框,带有下拉列表框的组合框,用来为菜单项指定一个快捷键。
四个复选项:
,复选,,指定当选中某一菜单项时,是否在该菜单项的左边作一个
“,标记。
,有效,,指定是否允许某菜单项响应鼠标事件。
,可见,,指定某一菜单项是否可见。
,菜单列表框,,显示菜单项的分级列表,以缩进方式将子菜单项的分级位置显示出来。
左右箭头按钮,改变菜单命令的级别,创建子菜单。单击,左箭头,左移一个等级,单击,右箭头,右移一个等级。 VB允许最多四个等级。
上下箭头按钮,用于移动菜单项在菜单中的位置。
下一个按钮,设置下一个菜单项。
插入和删除按钮,插入、删除菜单项。
2.3 制作菜单
Visual Basic 程序设计
3.建立菜单的步骤
(1) 设计菜单的结构设置菜单项及各菜单项的子菜单 。
(2) 用菜单编辑器建立各菜单项 。
(3) 为菜单项编写事件过程代码 。
4,状态条和工具栏
(1) 状态条通常位于窗口底部,主要显示某些与程序工作状态有关的信息。如,
字母的大小写工作状态、插入与改写状态、日期和时间等。
(2) 工具栏工具栏由若干个与菜单中的命令项相对应的命令按钮组成,每个按钮上标有与按钮功能有关的图像。
5,使用帮助使用帮助菜单或 F1键
2.3 制作菜单
Visual Basic 程序设计示例
主界面上的按钮事件过程,
………,
Private Sub cmdCheck_Click()
' invoke a Click event in the menu
mnuCheck_Click
End Sub
………
菜单命令的事件过程,
………,
Private Sub mnuCheck_Click()
' display the form
frmCheck.Show
End Sub
……….
Visual Basic 程序设计
复选框示例窗体中的主要事件过程,
Private Sub chkBold_Click()
If chkBold.Value = 1 Then ' If checked,
txtDisplay.FontBold = True
Else ' If not checked,
txtDisplay.FontBold = False
End If
End Sub
Private Sub chkItalic_Click()
If chkItalic.Value = 1 Then ' If checked,
txtDisplay.FontItalic = True
Else ' If not checked,
txtDisplay.FontItalic = False
End If
End Sub
示例
Visual Basic 程序设计第 3节 VB语言基础
3.1代码的书写规则
3.2 VB的数据类型
3.3运算符与表达式
3.4 VB的公共函数
Visual Basic 程序设计
1.语句语句是组成 VB程序的最基本成分。
(1) 语句的一般形式:
<语句定义符 >[语句体 ]
3.1 代码的书写规则规定语句的功能;
有些语句没有该部分提供具体说明或具体操作例如,Dim a as Integer
a= 20
一条语句作用,向系统提供必要的信息或规定系统执行某些操作。
(2)书写注意
1) 代码不区分字母的大小写,如,Ab 与 AB等效;
2) 系统对用户程序代码进行自动转换;
对于关键字,首字母被转换成大写,其余转换成小写
对于用户定义的变量、过程名,以首次定义为准进行转换
Visual Basic 程序设计
2.语句书写规则
(1) 续行:( 空格+ 下划线字符,_”)
(2) 同一行上书写多条语句,语句间用冒号,,,分隔
(3) 一行允许多达 1023个字符
(4) 注释行以 Rem开头,注释整行 ;
以注释符,?”引导注释内容 从注释符开始直到该行结束例如:
⑴ Form1.Print "学好 VB" _
"要多学多练 "
⑵ Form1.Hide,Form2.Show
⑶ Form1.Hide '将 Form1隐藏
3.1 代码的书写规则
Visual Basic 程序设计
3.2 VB的数据类型变量 /常量命名规则变量常量常量数据类型
Visual Basic 程序设计整 长整 单精度 双精度 货币型 字节型
Integer; Long ; Single; Double; Currency; Byte
1.数据类型
3.2.1 数据类型
⑴ Integer,整型 (占 2字节 )
表数范围,-215-1~ 215-1,即- 32768~ 32767
表示形式,± n 或 ± n%
⑵ Long,长整型 (占 4字节 )
表数范围,-231-1~ 231-1
表示形式,± n&
例如,-120,120 &,120,120%,43210,-12345678 &
⑶ Byte,字节型 (占 1字节 )
表数范围,0~ 255(无符号)
Visual Basic 程序设计整 长整 单精度 双精度 货币型 字节型
Integer; Long ; Single; Double; Currency; Byte
3.2.1 数据类型
⑷ Single,单精度 (4字节 )--- 7个有效位
表示形式:带小数点数用指数 (E)表示数字后面加,!,
⑸ Double:双精度 (8字节 ) --- 15个有效位
表示形式:用指数 (D)表示数字后面加,#,
例,-1E2,1.2E2
120.0,120!
+12345678.
例,-1D2,1.2D2
120#
⑹ Currency,货币型 (8字节 ) ---19个有效位
表示形式:数字后面加,@,例,120@
1.数据类型 (续 )
=(-1)× 102
Visual Basic 程序设计
Integer; Long ; Single; Double; Currency; Byte
1.数值数据类型
3.2.1 数据类型
4.Date型,---占用 8个字节
表示形式,用 #号括起来 如,#2-14-04 6:10:00#
2.Boolean型,
用于逻辑判断,只有两个值 True (-1) False ( 0)3.String型,
表示形式:用双引号括起来或变量名后加,$”,如:
,Basic”,a$=,1234”
5.Variant型,万能型是一种通用的、可变的数据类型 隐含变量的类型
6.Object型,用于保存任何对象的引用
Visual Basic 程序设计
举例,re,data,re.er,8re,工资,Integer
intSum
规则,
⑴ 变量或常量名必须以 字母或汉字开头;
⑵ 由字母、汉字、数字、下划线组成;
⑶ 长度不超过 255个字符;
⑷ 在 VB中变量名的字母不区分大小写;
⑸ 不要与关键字同名 (Dim,string等)
⑹ 为了提高程序的可读性,在变量名前可加约定的前缀
Int,lng,sng,dbl,bln,cur,dt,str,vnt,byt
3.2.2 变量 /常量的命名规则
Visual Basic 程序设计声明变量的目的,根据声明的类型决定系统为它分配的存储单元。
1.显式声明变量,
例 1,Dim A
Dim B As Long
Dim C As Single
Dim D As Integer
[Public|Private|Dim|Static] 变量名 [AS 数据类型 ]
3.2.3 变量变量:在程序的运行过程中其值可以变化的量等同于,Dim A,B As Long,C As Single,D As Integer
或,Dim A,B&,C!,D %
数值型字符型布尔型对象型万能型变长字符变量:约 20亿个字符定长字符变量:约 65400个字符
Private Sub Command1_Click()
Dim a As Integer,b As Long
Dim c As Single,d As Double
a = 3276
b = 327699999
Print a,b
c = 100 / 3
d = 200/ 3
Print c,d
End Sub
Visual Basic 程序设计例 2,Dim A As String
Dim B As String * 5
A=“Visual Basic”
B=“Visual Basic”
Print A,B
1.显式声明变量,
[Public|Private|Dim|Static] 变量名 [AS 数据类型 ]
3.2.3 变量
Private Sub Command1_Click()
Dim a As Boolean,b As Boolean
Dim f As Date
a = True ' 注意与 a =,True” 的区别
b = False
Print a,b
f = #3/1/2006 9:12:02 #
Print f
End Sub
注意,(1)在 VB中一个汉字与一个西文字符视为一样,算一个字
(2)在窗体和类模块中,不能用 Public定义定长字符串变量
Visual Basic 程序设计例,Private sub command1_click()
Dim i as integer
Static j as integer
i=i+1
j=j+1
Print i,j
end sub
连续 3次单击
command1,
分析输出结果声明变量的目的,根据声明的类型决定分配的存储单元。
1.显式声明变量
[Public|Private|Dim|Static] 变量名 [AS 数据类型 ]
3.2.3 变量变量:在程序的运行过程中其值可以变化的量
2.变量作用域
Dim与 Static的区别:
区别作用范围 作用范围 定义方法 定义位置局部变量 当前过程 Dim|Static 在过程内窗体 /模块变量 当前窗体或模块中的所有过程 Private|Dim 在窗体或模块的声明部分全局变量 工程内的所有过程 Public 在窗体或模块的声明部分
Visual Basic 程序设计是 指使用 的 变量未用声明语句进行声明而 直接使用
未声明直接使用的变量均默认为 Variant型
也可在变量名后加一个规定数据类型的说明符加以说明
(1)作用,强制显式声明变量。
即使用任何一个变量必须,先声明,后使用,
(2)增加 Option Explicit语句的方法:
a.在代码编辑器的通用 /声明部分输入,Option Explicit
b.“工具 |选项,-->“编辑器,-->选,要求变量声明,项
3,隐式声明变量,
例,Dim Str1 As String
Str1 = "计算机程序设计 "
Str2 = "计算机程序设计 "
Str3%= 123
Print Str1,Str2,Str3
3.2.3 变量
4,Option Explicit语句
Visual Basic 程序设计
2.声明符号常数,
格式,[Public|Private]Const 常量名 [As 类型 ]=表达式常数和运算符组成
1.直接常量:
常数值。其数值直接反映了类型注意,● 在程序中,常量比变量运行速度快
● 常量只能出现在赋值号的右边常量,在程序运行期间值不能改变的量
3.系统提供常量:
应用程序和控件提供的系统定义的常量例,vbRed代表“红色”等例如,+120,120,1.2E2,"程序设计 "
3.2.4 常 量
在一行中可放置多个常数说明,可用逗号分隔例:
Private Const Pi As Single = 3.14159,str$ = "VB"
Visual Basic 程序设计
3.3 运算符和表达式运算符表达式常量
Visual Basic 程序设计
1.算术运算符包括,+ -,MOD,\(整除 ),/ *,-(负号 ),^(乘方 )
表达式,(-5) ^ 2 + 5 Mod 3
2.字符串运算符包括,+,&
表达式,“123”+“3”
3.比较运算符包括,>,<,>=,<=,<>,=,Like,Is
4.逻辑运算符包括,And,Or,Not,Xor
.
表达式,15+23<4*8
表达式:
AND,逻辑 与,两边的值均为真时,结果为真;否则为假
OR,逻辑 或,两边的值至少有一个真,结果为真;否则为假
NOT,逻辑 反,只有一个参数
XOR,逻辑 异或,两边的值不同时,结果为真;否则为假否则为真
A B Not A A And B A Or B A Xor B
T T F T T F
T F F F T T
F T T F T T
F F T F F F
3.3.1 运算符写出逻辑表达式:
选拔优秀生的条件,三门功课英语 (C1)、数学 (C2)、计算机 (C3),总分至少 265分,或 C2,C3分别大于 90分且 C1不低于 80分。
C1+C2+C3 >=265 OR (C1>= 80 and C2>90 and C3>90)
Visual Basic 程序设计比较运算符
3.3.1 运算符
Like 运算符用来比较两个字符串。
语法
result = string Like pattern
Like 运算符的语法具有以下几个部分:
部分 描述
Result 必需的;任何数值变量。
String 必需的;任何字符串表达式。
Pattern 必需的;任何字符串表达式,模式匹配约定。
说明,如果 string 与 pattern 匹配,则 result 为 True;如果不匹配,则
result 为 False。
例如,搜索所有以,MAC”为开头的名字,
指定搜索条件 LIKE?Mac%?。
例如,查找象,Jan”,,Jen”和,Jon”这类名字,
指定搜索条件 LIKE?J_n?。
例如,在数据库中,可以使用下面的 LIKE 子句去搜索日期在 1994
年中的所有行,LIKE '%1994%'
Visual Basic 程序设计比较运算符
3.3.1 运算符
Is运算符用来比较两个对象 。
语法
result = object1 Is object2
Object:任意对象名称 。
举例:使用 Is运算符来比较两个对象引用 。
Dim MyObject,YourObject,ThisObject,OtherObject,ThatObject,
MyCheck
Set YourObject = MyObject? 指定对象引用 。
Set ThisObject = MyObject
Set ThatObject = OtherObject
MyCheck = YourObject Is ThisObject? 返回 True。
MyCheck = ThatObject Is ThisObject? 返回 False。
’ 假设 MyObject <>
OtherObject
MyCheck = MyObject Is ThatObject ' 返回 False。
Visual Basic 程序设计优先级的比较
1.几大类比较优先级,高 ---------------->低
2.算术运算符
3.比较运算符
4.逻辑运算符算术,连接、比较、逻辑
^,-,(* /),\,MOD,(+ -)
同一级
Not,And,Or,Xor
3.3.1 运算符
Visual Basic 程序设计
1.算术运算符包括,^(乘方 ),-(负号 ),/ *,\(整除 ) MOD,+ -
表达式,(-5) ^ 2 + 5 Mod 3
2.字符串运算符包括,+,&
表达式,“123”+“3”
A B A+B A& B
“123”,3”,1233”,1233”
“123” 3 126,1233”
123 3 126,1233”
“123a” 3 出错,123a3”
3.比较运算符包括,>,<,>=,<=,<>,=,Like,Is
表达式,15+23 < 4*8
3.3.1 运算符注意,● 若操作数为字符型,按 ASCII码比较
● 汉字字符 >西文字符运算结果是 逻辑 值 =False
Visual Basic 程序设计
1.表达式组成
包含:变量、常量、运算符、函数和小括号
表达式结果,与数据和运算符有关
2.书写规则
乘号不能省略
括号必须成对出现
一个表达式在同一行上书写,没有高低、大小区分
3.同一表达式中的数据的类型转换
操作数的数据类型应该符合要求,不同的数据应该转换成同一类型。
在算术运算中,如果操作数的数据精度不同,VB规定运算结果采用精度较高的数据类型。
3.3.2 表达式
Visual Basic 程序设计
3.4 常用内部函数
1.字符串函数
求字串长度,Len(C)
LenB(C)
取子串,Left(C,N)
Right(C,N)
Mid(C,n1[,n2])
查找子串,InStr([N1],C1,C2)
去掉首或尾空格,LTrim (C),RTrim(C),Trim(C)
Left(“计算机基础,,2) -->计算
Right (“计算机基础,,2) -->基础
Mid (“计算机基础,,2,4)-->算机基础
Len(“VB程序设计,) --> 6
LenB (“VB程序设计,) --> 12
Str=” AB CDE,
LTrim (str) -->,AB CDE,; RTrim(str) -->” AB CDE”;
Trim(str) -->,AB CDE”
InStr(4,”abdbcdef”,”d”) --> 6
String(6,”A”)?AAAAAA
Space(10)
生成字串,string(n,”字符” )
生成空格串,space(n)
Visual Basic 程序设计
3.4 常用内部函数
2.日期函数获取系统当前日期,Date 如,Print date
Print Time$
Print Now
Print Year(Now),Month(Now),Day(Now)
获取系统当前时间,Time
获取系统当前日期和时间,Now
获取指定日期年、月、日的值,Year(D),Month(D),Day(D)
Visual Basic 程序设计
日期时间格式符:
数值格式符:
0,显示一数字,若此位置没有数字则补 0
#,显示一数字,若此位置没有数字则不显示
,- + $ ( ),原样打出
3.4 常用内部函数
3.格式输出函数
Format(表达式 [,格式字符串 ])
如,Print Format(12.345,"+000.00")
如,print Format(Now,"yyyy-mmmm-dddd")
如,Format("ABcd",">"),Format("ABcd","<")
注意,Format函数仅用于控制数据的外部输出格式,不会改变数据在计算机内部的存储形式
字符串格式符,> 和 <
Print Format(12000.345,"#,###.##")
Visual Basic 程序设计总 结
变量的命名规则
变量的声明
[Public|Private|Dim|Static] 变量名 [AS 类型 ]
数据类型及其表示符数值(整、长整、单精、双精、货币、字节)
逻辑、日期、字符、万能、对象
显示声明与隐式声明
常量的声明
运算符的种类与优先级
表达式的书写
常用函数
[Public|Private] Const 常量名 [AS 类型 ]=表达式
算术运算符 > 字符运算符 >关系运算符 >逻辑运算符
Visual Basic 程序设计第 4节 算法基础及 VB基本语句
4.2 分支结构
4.3 循环结构
4.1 顺序结构
Visual Basic 程序设计
1.赋值语句
⑴ 给变量赋值格式,变量名 =表达式
⑵ 设置或获取对象的属性设置属性值,[对象名,]属性 =表达式获取属性值,变量名=对象名,属性如,A=“VB程序设计,
Text1.Text=A
B= Text2.Text
4.1 顺序结构顺序结构,各语句按照出现的先后次序依次执行
Print方法系统提供的交互函数或过程包括 赋值语句输入 /输出如,Dim v As Integer
Dim book As String*8
Dim sum As Single
v=26
v=v+1
book=“VB程序设计,
sum=v*123.4+56.7
Visual Basic 程序设计
1.赋值语句
4.1 顺序结构顺序结构,各语句按照出现的先后次序依次执行注意:
(1) 右边表达式的值 强制转换 成左边变量的精度
(2) 左边的 函数只能返回变量或对象例,Dim X As Single
Dim Y As Single
Dim Sum As Single
X=26
Sin(X)=X+Y
5=Sqr(X)+Y
X+Y=126
Sum=1
Sum=Sum+1
(3) 赋值号 左侧 只能出现变量
(4) 一条赋值语句不能同时给多个变量赋值
Visual Basic 程序设计
4.1 顺序结构顺序结构,各语句按照出现的先后次序依次执行
⑶ 与用户交互函数和过程格式,InputBox ( 提示 [,标题 ] [,默认值 ] [,X] [,Y] )
格式,MsgBox ( 提示内容 [,按钮设置 ] [,标题 ] )
1.赋值语句
⑴ 给变量赋值
⑵ 设置或获取对象的属性
InputBox函数
MsgBox函数
Visual Basic 程序设计
InputBox函数 ---输入框作用,
打开一个对话框,等待用户输入内容。
单击确定,返回输入值(字符型数据)
格式,
变量名 = InputBox ( 提示 [,标题 ][,默认值 ][,X][,Y])
例:设置一个输入框:
提示用户输入查询学号。
提示:
若提示内容中需要换行显示:
在换行处加 chr(13)和 chr(10)
各项参数位置必须一一对应显示的坐标位置
Visual Basic 程序设计按 钮,可选 。整型表达式,缺省值为 0
指定信息框中按钮 数目,类型,图标类型,
缺省按钮 等
Msgbox函数 --信息框
变量 = MsgBox(提示内容 [,按钮 ][,标题 ])
MsgBox 提示内容 [,按钮 ] [,标题 ]
提示内容,必要 。字符表达式,即显示在对话框中的信息
2.MsgBox 函数的常用参数的说明
<= 1024 个字符,
如果文字超过一行,可用 Chr(13) + Chr(10) 换行标 题,可选 。在对话框标题栏中显示的内容。
省略此项,则将 应用程序名 放在标题栏中
1.语法
Visual Basic 程序设计值 按钮设置 对应按钮名称
0 vbOKOnly---------------确定
1 vbOKCancel-------------确定、取消
2 vbAbortRetryIgnore---终止、重试、忽略
3 vbYesNoCancel---------是、否、取消
4 vbYesNo------------------是、否
5 vbRetryCancel----------重试、取消
Msgbox参数的设置
1.按钮的类型和数目的设置设置 参数 =按钮设置值 + 图标设置值 +缺省的活动按钮设置参 数值 = 1 或 vbOKCancel
Visual Basic 程序设计对应值 符号常量 出现的图标
2.图标的样式设置 参数 =按钮设置值 + 图标设置值 +缺省的活动按钮
16 vbCritical --------------------
32 vbQuestion --------------------
48 vbExclamation --------------
64 vbInformation ---------------
设置参 数值 = 1+64 或 vbOKCancel+ vbInformation
Msgbox参数的设置
Visual Basic 程序设计对应值 符号常量 缺省的活动按钮
3.说明哪一个是缺省按钮设置 参数 =按钮设置值 + 图标设置值 +缺省的活动按钮
0 VbDefaultButton1
256 VbDefaultButton2
512 VbDefaultButton3
设置参 数值 = 2+64+512=578
或 vbOKCancel+ vbInformation+VbDefaultButton3
Msgbox参数的设置
Visual Basic 程序设计符号常量 返回值 对应按钮
4.Msgbox的函数返回值用于确定用户选择对话框的哪一个按钮,以作出不同的响应。
vbOK 1--------------------确认
vbCancel 2--------------------取消
vbNo 7 -------------------否 (N)
vbAbort 3 -------------------终止 (A)
vbRetry 4--------------------重试 (R)
vbIgnore 5--------------------忽略 (I)
vbYes 6 -------------------是 (Y)
Msgbox的返回值:
Private Sub Command1_Click()
Dim i As Integer
If Text2.Text = "123456" And Text1.Text = "npu" Then
Form3.Visible = True
Form1.Visible = False
Else:
i = MsgBox("密码错! " + Chr(13) + Chr(10) + "是否重新输入? ",
vbOKOnly + vbCritical,"提示信息 ")
Text2.Text = ""
Form1.Visible = True
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Text1.Text = "npu“
Text2.Text =,”
Text2.PasswordChar =,*"
End Sub 进入
Visual Basic 程序设计先对条件测试,根据测试的结果选择执行不同的分支
1.If条件语句
2.Select Case 结构
4.2 选择结构
3.条件函数
Visual Basic 程序设计
1,If… Then 结构格式,If 条件 Then
(A组语句 )
EndIf
……
执行规则:若 条件成立,执行 A组语句 ;
条件不成立,跳过 A组语句,
4.2.1 If条件语句条件
A组语句
T
F
例,If score >= 60 Then
Print score
Print "祝贺你考试通过! "
End If
Print,继续努力!”
Visual Basic 程序设计例,If score >= 60 Then
Print,祝贺你考试通过!”
Else
Print,考试未通过,”
End If
Print "继续努力! "
2,If… Then… Else 结构格式,If 条件 Then
A组语句
Else
B组语句
END If
执行规则,条件 成立,执行 A组语句,
条件 不成立,执行 B组语句条件
A组语句
T
F
B组语句
4.2.1 If条件语句
.3,If…Then…ElseIf 结构
Mark=val(Text1.Text)
If Mark >= 90 Then
Print "优 "
ElseIf Mark >= 60 Then
Print,通过 "
Else
Print,未通过 "
End If
格式,If 条件 1 Then
( A组语句)
ElseIf 条件 2 Then
( B组语句)
ElseIf 条件 3 Then
( C组语句)
……
Else
( n组语句)
End If
4.2.1 If条件语句多分支语句中,有多个分支同时满足,只执行 第一 个 与之匹配的语句块。
Visual Basic 程序设计
.
4,If语句的嵌套
4.2.1 If条件语句
If语句的嵌套是指 if 或 else后面的语句块中又包含 If语句。语句形式:
If <表达式 1> Then
If <表达式 11> Then
……
End If
……
End If
注意:
(1) 对于嵌套结构,为了增强程序的可读性,应该采用缩进形式书写;
(2) If语句形式若不在一行上书写,必须与 End If配对多个 If嵌套,End If与它最接近的 If 配对。
Visual Basic 程序设计
Select Case 测试表达式
Case 测试项 1
A组语句
Case 测试项 2
B组语句
……
Case Else
n组语句
End Select
说明:
测试表达式的值应是数字或字符型
测试项的取值 必须 与测试表达式的值 类型相同,常用形式为:
具体取值,用逗号隔开如,1,5,9
连续的范围:界 1 TO 界 2
如,12 To 20
满足某个条件,Is运算符如,Is>10
三种形式可以组合使用
4.2.2 Select Case语句
Select Case 结构例:输入二级考试成绩,要求显 示对应三级制的评定。
Mark=Val(Text1.Text)
Select case Mark
case is>=90
Print "优 "
case 60 to 90
Print,通过 "
Case Else
Print,未通过 "
End select
Mark=Val(Text1.Text)
K=mark\10
Select case k
case 10,9
Print "优 "
case 8 to 6
Print,通过 "
Case Else
Print,未通过 "
End select
返回包含于字符串内的数字,
字符串中是一个适当数值类型
Visual Basic 程序设计
4.3 循环结构循环,是在指定的条件下多次重复执行一组语句
1,For,.,Next
2,Do..,Loop
3,循环嵌套
4.其他辅助控制语句
Visual Basic 程序设计循环变量 =循环变量 +步长语句块
F
Exit For
语句块
T
循环变量 <=终值
For 循环变量 =初值 TO 终值 [Step 步长 ]
语句块
Exit For
语句块
Next 循环变量
For循环格式:
执行过程,
(1) 将初值赋循环变量;
(2) 判断循环变量值是否 小于等于终止值;
(3) 若是,执行循环体(语句块);
(4) 然后将变量增加一个步长;
(5)重复 2~4步骤。
(6)否则,结束循环
4.3.1 For循环步长省略,
默认为 1
循环变量赋初值
F
T
循环体
Visual Basic 程序设计程序代码:
Dim I%,s%
For I = 1 To 10 step 1
Next I
Print I,s
例 1:求 1+2+3+4+… +10之和,
分析,
重复过程 (循环体 ),s= s+I
初值、终值和增量,1,10,1
初值与终值换位可以吗?
循环体的执行次数是多少?
s = s + I
For I= 0 To 1 Step -1
4.3.1 For循环
For 循环变量 =初值 TO 终值 [Step 步长 ]
语句块
Exit For
语句块
Next 循环变量循环体
I<=10
Visual Basic 程序设计注意:
⑴ 初值、终值、步长必须是 数值型,
步长为 正,初值 <终值;若为 负,初值 >终值; 缺省 默认为 1
⑵ 在已知循环次数时使用 For循环,循环次数 =int((终值 -初值 )/步长 )+1
⑶ 组成循环体的语句块可以是一条或多条语句
⑷ Exit For表示当遇到该语句时,退出循环体,执行 Next的下一句;
⑸ 在循环体内对循环变量可多次引用,但在循环过程中一般 不改变 其值,
否则影响结果。
⑹ 退出循环后,循环变量保持退出时的值
4.3.1 For循环
Visual Basic 程序设计
1,Do While <条件 >
循环体(条件成立时)
Loop
2,D0
循环体
Loop While <条件 >
3,Do Until <条件 >
循环体(条件不成立时)
Loop
4,Do
循环体
Loop Until <条件 >
4.3.2 Do… Loop循环
Visual Basic 程序设计
1,While循环
⑴ Do While <循环条件 >
循环体
Loop
执行过程,(先判断,后执行)
先判断循环条件,
若为真,执行循环体,再判断循环条件否则,跳过循环体,执行 Loop之后语句循环条件语句块
T
F
语句块
F
Exit Do T
4.3.2 Do… Loop循环
Visual Basic 程序设计
⑵ D0
循环体
Loop While <条件 >
执行过程,(先执行,后判断)
先执行循环体,再判断循环条件,
若为真,继续执行循环体 ;
否则,结束循环,执行 Loop之后语句循环条件语句块
T
F
语句块
F
Exit Do T
1,While循环
4.3.2 Do… Loop循环
Visual Basic 程序设计
⑴ Do While <条件 >
循环体
Loop
⑵ D0
循环体
Loop While <条件 >
区别,(1)执行顺序不同形 式一,先判断,后执行 循环体 ;
形式二,先执行 循环体,后判断
(2)执行次数不同 (特殊情况下)
形式一,条件不满足,循环体可能一次也不执行形式二,不论条件如何,至少执行一次
While循环
4.3.2 Do… Loop循环
Visual Basic 程序设计执行过程,(先判断,后执行)
先判断循环条件:
条件为 假,执行循环体,
然后再判断条件,
条件为 真,跳过循环体,
执行 Loop之后语句
⑶ Do Until <条件 >
循环体
Loop
2.Until循环循环条件语句块
F
T
语句块
F
Exit Do T
4.3.2 Do… Loop循环
Visual Basic 程序设计几种形式比较,
Do While <条件 >
循环体
Loop( While <条件 >)
Do Until <条件 >
循环体
Loop( Until <条件 >)
区别,
While 条件为 真 时执行循环体,否则退出循环
Until 条件为 假 时执行循环体,否则退出循环关系,while和 Until可以相互 转换,但循环条件 取反
4.3.2 Do… Loop循环
Visual Basic 程序设计
⑴ Do While <循环条件 >
循环体
Loop
Dim I,s As Integer
For I = 1 To 10
s = s + I
Next I
Print I,s
例 1:求 1+2+3+4+… +10的和,
Dim I,s As Integer
I=1
Do While
Loop
Print I,s
s=s+I
I<=10
I=I+1
1
(1)循环体执行了几次?
(2)没有 I=1会怎样?
(3)I先赋值为 11,结果如何?
1,While循环
4.3.2 Do… Loop循环
Print s
Visual Basic 程序设计
1.GoTo语句
满足循环条件的情况下,提前跳出循环体,结束循环。
两种形式,Exit For,Exit Do
作用:无条件的转移到标号或行号指定的语句
语法,GoTo {标号 |行号 }
100 If I <= 100 Then
s = s + I
I = I + 2
GoTo 100
End If
4.4.4 其他辅助控制语句
2.Exit语句
Visual Basic 程序设计
Dim I As Integer
If I mod 17 =0 then
print I
end If
For I=100 to 200
Next I
Exit for
分析:
重复工作:判断每个数除 17的余数是否为 0
初值、终值和增量:
例题:
求出 100~ 200之间的 第一个 能被 17整除的整数。
4.4.4 其他辅助控制语句
Visual Basic 程序设计
5.1 数组的概念
5.2 数组的基本操作
5.3 动态数组
5.4 控件数组第 5节 数组
Visual Basic 程序设计
☆ 数组元素是带有 下标 的变量,其一般形式为:
数组名(下标 1 [,下标 2,……] ) 如,A(2) B(2+2,1) C(1*2,3,1)
A(2) =(A(0) A(1) A(2))
B(2,1)=
第 1行第 2行第 3行第 1列 第 2列
5.1 数组的概念数组是一组具有 相同类型 的有序变量的集合。数组可用于存储成组的有序数据。使用数组就是用一个相同的名字引用这一组变量中的数据,这个名字称为数组。
B(0,0) B(0,1)
B(1,0) B(1,1)
B(2,0) B(2,1)
Visual Basic 程序设计通常,数组是由 一组 具有 同一类型 的变量组成的,在使用一个数组之前必须对数组进行定义,确定其名称、类型及其规模。
在 VB中有两种类型的数组:
固定大小的数组 — 在定义时就确定了数组大小,并且在程序运行过程中,它总是保持同样的大小;
动态数组 —在定义时不指明其大小,并且在运行时其大小可以改变声明 固定大小 数组应包含的信息:
数组名? 数组的维数
数组的大小(体积)? 数组的类型数组定义
Visual Basic 程序设计
⒈ 一维数组格式:
Dim|Private| Public| static 数组名 ([维界定义 ]) [As 数组类型 ]
功能,定义一个一维数组,并初始化所有数组元素。
说明,① 数组的维界定义必须为常数或常量符号,不能是表达式或变量。例如:
Const k as integer=10
Dim x(10) As Single 正确
Dim a(k) as long 正确而 n=10
Dim x(n) As Single 错误,下标不能是变量,只能是常数或常量符号。
Visual Basic 程序设计
② 下标的形式是,[下界 To ]上界 。一般情况下,当 [下界 To]缺省时,默认值为 0。下界 ≤上界。维的大小是,上界-下界+ 1。
维界说明如果不是整数,将自动进行四舍五入处理。
③ As 数据类型,用来说明数组元素的类型,如果缺省,默认为是 变体型( Variant) 。
例如:
Dim a (12) As Single ˊ 声明 a数组为单精度型,下标范围为 0~ 12,
Dim x (1 To 50 ) As Integer ˊ 声明 x数组为整型,下标范围为
1~ 50,
Dim y (1 To 10 ) ˊ 声明 y是一个下标范围为 1到 10的变体型数组,
Visual Basic 程序设计
④ 数组必须先声明后使用 。
⑤ Dim语句声明数组,该语句把数值数组中的全部数组元素都初始化为 0,把变体字符串数组中的数组元素初始化为空字符串,把定长字符串数组的元素初始化为给定长度的空格,把逻辑型数组元素初始化为 False,
变体型初始化为 Empty。
⑥ Dim语句中的维界定义可以是常数,也可以为空 。
下标为常数时为固定大小的数组,下标为空时则为动态数组 。
Visual Basic 程序设计
⑦ 可以使用以下方法声明数组:
建立公用数组,在模块的声明段用 Public 语句声明数组 。
建立模块级数组,在模块的声明段用 Private 或 Dim语句声明数组 。
建立局部数组,在过程中用 Dim或 Static语句声明数组 。
例如:
Public Counters ( 14 ) As Double
定义 Counters为 15个元素的公用数组
Private Sums ( 1 To 20 ) As Double
定义 Sums为 20个元素的模块级数组
s b form_click( )
Dim Subs ( 20 ) As Double?定义 Subs 为 21个元素的局部数组
End sub
Dim a (4) as Integer?声明模块级数组
private sub command1_click( )

end sub
Visual Basic 程序设计用 static定义静态局部数组
Private sub form_click( )
Static s(3) as Integer
End sub
与前述的静态变量类似,静态数组的特点是,在调用过程时,它的各个元素会继承上次退出该过程时对应元素的值。
Visual Basic 程序设计
⒉ 多维数组格式:
Dim|Private| Public| static 数组名 ([维界定义 ]) [As 数组类型 ]
说明,此时的维界定义是对两维下标的定义 。 每一维的大小为,上界-下界+ 1;数组的大小为 每一维大小的乘积 。
Dim Arr( 3,4) As Integer
声明 Arr是整型数组,4行 5列,
共 20个元素。
Dim MultiD (3,1 To 10,1 To 15)
声明 MultiD是一个变体数组,大小为 4 * 10* 15
数组声明中定义的数组名,用来说明数组的名字、
维数、大小和类型。数组元素是数组中的一个成员,
只能放在可执行语句中。两者虽然形式相同但意义不同。
例如,Dim b(1,2) as Single ‘声明 2行 3列的二维数组
b(1,2) = 3.2 ‘给数组元素 b(1,2)赋值
Visual Basic 程序设计
5.2 数组的基本操作数组是常用的结构类型,数组在定义时用数组名表示该数组的整体,但在具体操作时是针对每个数组元素进行的。
1、数组元素的赋值利用循环语句对数组元素进行逐一地赋值。
Private sub Command1_click()
dim a(5) as integer,I as integer
for I=0 to 5
A(I)=Int(100*rnd)+1
print a(I);
next I
end sub
Visual Basic 程序设计
5.2 数组的基本操作
1、数组元素的赋值利用循环语句对数组元素进行逐一地赋值。
Private sub Command1_click()
dim a(5) as integer,I as integer
for I=0 to 5
a(I)=Inputbox(“给数组元素赋值”,“数组 A赋值” )
print a(I);
next I
end sub
Visual Basic 程序设计
2,数组元素的输出数组元素的输出可以使用 For循环和 Print语句来实现 。
例,输出方阵
sc中的下三角元素。
Private Sub Command1_Click()
Dim sc(4,4) As Integer
For i = 0 To 4
For j = 0 To i
sc(i,j) = i * 5 + j
Print sc(i,j); " ";
Next j
Print
Next i
End Sub
Visual Basic 程序设计
3,数组元素的引用要使用数组中的元素,应使用这样的格式:
格式,数组名(下标,… )
说明,① 下标的个数必须与数组定义时的维数一致。对于多维数组元素,下标之间用逗号隔开。
☆ ② 对数组元素的引用必须在各维的上下界之内。否则就会产生“下标越界”的错误。
Visual Basic 程序设计
5.3 动态数组动态数组指在声明数组时未给出数组的大小(省略括号中的下标),当要使用该数组时,随时可用 ReDim语句重新定义数组的大小。
使用动态数组的优点是:用户可以根据需要有效地利用存储空间,它是在程序执行到 ReDim语句时分配存储空间。
建立动态数组的方法是,使用 Dim,Private,Public等语句声明括号内为空的数组,给数组赋予一个空维数表。
如,Dim Dyn() as Integer
然后在过程中 用 Redim语句指明该数组的大小。
格式,Redim [preserve ] 数组名 ( 下标 1 [,下标 2 …])
功能:声明动态数组的大小。
Visual Basic 程序设计
Private sub form_click( )
Dim a( ) as integer,I as integer,j as integer,n as integer
n =5
redim a(n)?重新说明 A为一维数组
for I=1 to n
A(I)=inputbox(“x=”,,1)
print a(I);
next I
End Sub
Visual Basic 程序设计
Private sub form_click( )
Dim a( ) as integer,I as integer,j as integer,n as integer
n =5
redim a(n,n)?重新说明 A为二维数组
for I=1 to n
for J=1 to n
a(i,j)=i+j
print a(i,j);
next j
print
next i
End Sub
Visual Basic 程序设计固定大小的数组动态数组定义时指明大小,运行时不变在声明数组时未给出数组的大小,在程序运行期间可变
Visual Basic 程序设计说明,① ReDim语句中的下标可以是常量,也可以是有了确定值的变量 。
② 在过程中可以多次使用 ReDim语句来改变数组的大小 。
例如,Dim sArray( ) As Single
Sub Form_click( )
……
ReDim sArray(4,8)
……
End Sub
在窗体级声明了数组 sArray为动态数组,在 Form_click( )事件函数中重新指明该数组的大小是 5行 9列。
Dim a( ) as Integer
N=4
redim a(n)
N=9
redim a(n)
n=10
redim a(n,n)
Visual Basic 程序设计说明,③ 每次使用 Redim语句都会使原来数组中的值丢失,即数组中的内容全部被重新初始化 。
用 Preserve选项,则在对数组重新说明时,将会保留数组中原来的数据 。 但该参数只能改变 最后一维 的大小,前面维的大小不能改变 。
Dim att( ) as Integer
I=2,J=2
redim att(i,j)
j=j+1
redim preserve att(i,j)
Visual Basic 程序设计例:输入 若干 学生成绩到一维数组,计算平均分和高于平均分的人数,并将平均分和高于平均分的人数放在该一维数组的最后。
1、如何实现学生数的动态变化? 可考虑用动态数组,其元素数表示学生数。
2、怎样结束学生成绩的输入? 可用一个特殊值(如,-99)表示结束输入。
Visual Basic 程序设计例:输入 若干 学生成绩到一维数组,计算平均分和高于平均分的人数,并将平均分和高于平均分的人数放在该一维数组的最后。
Private Sub Command1_Click()
Dim a( ) as Integer
Do
score =val( InputBox(" id" +Str(i)+"成绩为,"))
If score <> -99 Then
i = i + 1
ReDim Preserve a(i)
a(I)=score
else
Exit Do
End If
Loop
End Sub
Visual Basic 程序设计
基本概念:由一组具有名称和相同类型的控件组成,数组中的每一控件共享同样的事件过程。当建立控件数组时,
系统给每个元素赋一个唯一的索引号( Index),通过属性窗口的 Index属性,可以知道该控件的下标是多少,第 1
个下标是 0。
例如:一个控件数组有三个 option按钮,不论单击哪一个,
都会调用同一个 Click事件过程。
建立的方法,1、创建同名控件。 2、复制现存控件。
5.4 控件数组
Visual Basic 程序设计
5.4 控件数组
Private Sub
Command1_Click(Index As
Integer)
Select Case Index
Case 0
Text1.Text =,第一组”
Case 1
Text1.Text =,第二组”
Case 2
Text1.Text =,第三组”
End Select
End Sub
第 6节 过 程
Visual Basic 程序设计
6.1 事件过程
6.2 过程及调用
6.3 参数的传递
6.4 变量的作用域
Visual Basic 程序设计将多处使用的代码分解为相对独立的部分,供使用处调用。这样可以大大解化程序的设计。
第 6节 过 程过程子程序过程( Sub)
函数过程( Function)
属性过程( Property)
事件过程通用过程窗体过程控件过程
Visual Basic 程序设计
打开代码窗口(双击控件或窗体,单击查看代码)
选择对象和事件,并输入代码
建立事件过程加入对发生事件进行处理的代码的过程,称为事件过程
6.1 事件过程
1.事件:
定义,能被对象所识别的动作。
触发事件的条件,用鼠标或按键等系统也会产生事件事件过程的分类,窗体事件过程控件事件过程
Visual Basic 程序设计
Private Sub Form_事件名 ([argumentlist])
语句块
End Sub
1) 窗体事件过程形式:
6.1 事件过程说明:
(1) Private 表明该过程是模块级的,在该窗体之外不可用。
(2) 不论定义的窗体名称是什么,窗体事件过程名中均用
Form 或 MIDFORM(多文档界面窗体)表示。
(3) 事件由 VB提供。注意部分事件的发生顺序:
Initialize,Load,Activate,GotFocus
2.定义事件过程
Visual Basic 程序设计
2) 控件事件过程形式:
6.1 事件过程说明:
(1) 控件名必须与窗体中某个控件相匹配,属于私有过程 。
(2) 参数列表:有无参数由事件本身决定,用户不可以自行添加 。
2.定义事件过程
Private Sub 控件名 _事件名 ([参数列表 ])
语句块
End Sub
Visual Basic 程序设计
6.2 过程及其调用将多次被重复使用的程序段设计成一个具有一定功能的独立程序段,即为通用过程。
6.2.1 函数过程及调用
6.2.2 子过程及调用
6.2.3 调用其他模块中的过程
Visual Basic 程序设计将多次被重复使用的程序段设计成一个具有一定功能的独立程序段,即为通用过程。
引例,已知多边形的各条边的长度,求这个多边形的面积子 过 程函数过程
:由应用程序调用才能运行。
:由应用程序或函数名都可调用。
f
a b
c
deg
S1
S2
S3
c=0.5*(x+y+z)
Area=sqr(c(c-x)(c-y)(c-z))
6.2.1 函数过程及其调用
Visual Basic 程序设计
⑴ 利用对话框
,工具,菜单 --->“添加过程,--->在对话框输入对应项
在代码中,填入形参名称和类型,以及函数名的类型
1.定义
6.2.1 函数过程的定义及调用
Visual Basic 程序设计
1.定义:
⑵ 利用代码窗口直接输入
把插入点放在 所有过程之外
直接输入函数过程
Public Function area(x!,y!,z!) as single
6.2.1 函数过程的定义及调用
Visual Basic 程序设计
2.定义格式:
Public Function 函数名(形参列表 )[As 数据类型 ]
定义变量或常量语句序列函数名 = 表达式
End Function
如,Public Function area(x As Single,y!,z!) As Single
c=0.5*(x+y+z)
area=sqr(c*(c-x)*(c-y)*(c-z))
End Function
注意:
在函数体内,函数名最少赋值一次
形参列表没有值,只代表参数的个数、类型、位置
函数过程无参数,括号不能省略
(变量名 [As 类型 ],变量名 [As 类型 ],,,)
6.2.1 函数过程的定义及调用
Visual Basic 程序设计
3.函数的调用格式如下:
格式 1:变量 = 过程名( [实参表 ])
格式 2,CALL 过程名(实参)
格式 3:过程名 实参说明:通常用第一种格式比较多,用后两种方法调用函数时 VB放弃函数的返回值。
6.2.1 函数过程的定义及调用
Call Year (Now)
Year Now
Visual Basic 程序设计
6.2.1 函数过程的定义及调用与前面使用的标准函数的调用相同,出现在赋值号的右侧格式,函数名( [实参列表 ])
注意:
函数过程不能作为独立语句使用调用,必须与其他成分结合使用
实参列表中的参数个数、位置和类型与形参一一对应如,Public Function area(x!,y!,z!) As Single
c=0.5*(x+y+z)
area=sqr(c*(c-x)*(c-y)*(c-z))
End Function
3.函数的调用如,Private Sub Form _ Click()
a=5,b=4,c=3,d=3
e=4,f=5,g=4
s1=area(a,b,c)
s2=area(c,d,e)
End Sub
a b
c
deg
S1
S2
S3
Visual Basic 程序设计
过程调用的参数传递关系:
Public Function area (x!,y!,z!) As Single
c=0.5*(x+y+z)
area=sqr(c*(c-x)*(c-y)*(c-z))
End Function
Private Sub Form _ Click()
dim a!,b!,c!,s1!
a = 5:b = 4:c = 3
s1=area (a,b,c)
……
print s1+s2+s3
End Sub
实际参数形式参数
Visual Basic 程序设计例:已知下图所示的立方柱底边长 a,b和柱高 h,求出立方柱两顶角之间的对角线 d.
a
b
d
h
c
Public Function z(x!,y!) As Single
z = Sqr(x * x + y * y)
End Function
Dim a,b,c,d,h As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
h = Val(Text3.Text)
c = z(a,b)
d = z(c,h)
Print "d=" ; d
End Sub
函数的定义调用函数 求矩形的对角线输入部分
Private Sub Command1_Click()
分析:
(1)函数:
重复的工作 (求矩形的对角线 )
(2)Command1_Click
事件中,完成数据的输入、函数的调用和输出
Visual Basic 程序设计例:求 1!~ n!之和
Public Function fac(n%) As Integer
fac = 1
For i = 1 To n
fac = fac * i
Next i
End Function
Dim sum as integer,k As integer
For k = 1 To 5
Sum = Sum + fac(k)
Next
print Sum
Private Sub Command1_Click()分析:(1)函数过程:
完成求任一数 n!
(2)Command1_Click中:
各阶乘值的累加,和函数调用及输出
Visual Basic 程序设计
6.2.2 子过程的定义及其调用
1.定义方式
⑴ 进入代码窗口,
按定义格式 敲入 Sub及子程序名,
⑵ 在,工具,-->选择,添加过程,
-->在对话框中选择,子过程,,并输入过程名
(变量名 [As 类型,] 变量名 [As 类型 ],,,)
2.定义格式:
[Public|Private] Sub 过程名(形参列表)
语句序列
End Sub
Visual Basic 程序设计
Public Sub result( a!,b!,c!,x1!,x2!)
Dim t As Single
t = b^2-4*a*c
x1=(-1*b+sqr(t))/(2*a)
x2=(-1*b-sqr(t))/(2*a)
End Sub
例,编写一个计算一个一元二次方程根的 Sub子过程总结:
形参应是变量
子过程名无值,不要在子过程中赋值
子过程的应用范围比函数过程范围广
Visual Basic 程序设计
3.调用,两种格式
Call 子过程名 [( 实参列表 ) ]
子过程名 [实参列表 ]
无实参时,括号省略
Public Sub command1_click()
Dim t As Single
a1=5:b1=4:c1=3
call result(a1,b1,c1,y1,y2)
End Sub
6.2.2 子过程的定义及其调用
result a1,b1,c1,y1,y2
Visual Basic 程序设计
6.2.2 子过程的定义及其调用
4.退出子过程
Exit Sub (通常与 条件语句 同时使用 )
在 子程序 中进行测试,并根据测试结果确定是否退出子程序,
Public Sub result( a!,b!,c!,x1!,x2!)
Dim t As Single
t = b^2-4*a*c
x1=(-1*b+sqr(t))/(2*a)
x2=(-1*b-sqr(t))/(2*a)
End Sub
if t<0 then Exit Sub
Visual Basic 程序设计在程序中只能调用其他模块中的公有过程。
6.2.3 调用其它模块中的过程
1.窗体模块格式,CALL 窗体名,过程名 ( [实参表 ])
2.标准模块
(1) 若调用自身模块中的过程,或标准模块中的过程且过程名唯一,则格式为:
CALL 过程名 ( 实参 )
(2) 若调用别的模块中的过程且有两个以上的模块中含有同名过程,则格式为:
CALL 模块名,过程名 ( 实参 )
3.类模块
Visual Basic 程序设计
6.3 参数的传递按地址传递按值传递数组参数 参数对象参数
Visual Basic 程序设计
6.3 参数的传递在调用有参过程时,将调用程序中的实参和被调用过程中的形参结合,实现主调程序和过程之间的数据传递;
形参 可以是 除定长字符串 外的合法变量名,后面跟有左右括号的数组名
实参 可以是:变量,数组名,常数、表达式、对象参数 传递方式分为,传值 和 传址 (引用)两种。
按值传送,形参变量前应加有 ByVal;
说明:如果形参是变量,实参是 常数 或 表达式 时,即使在形参前没有关键词 ByVal,也是实现按值传递
按址传送,形参前没有加上任何修饰词,或加,ByRef”
(VB默认 )
Visual Basic 程序设计
6.3.1 按地址传递按地址传送时传送的是实参的地址,在调用时,被调用过程直接将接受到的地址里的值进行修改,从而实参值被改变。所以执行完调用语句后,实参的值将会有所改变。
按址传递形参的语法特点:
形式变量前没有修饰词;
或在形式变量前加,ByRef”关键词如,Public Sub test(i!,ByRef j As Integer)
……
End Sub
Visual Basic 程序设计
6.3.1 按地址传递
Private Sub Form_Click()
Dim x As Integer,y As Integer
x = 10
y = 20
Print "执行过程前,x="; x,"y=" ; y
test x,y
Print "执行过程后,x="; x,"y=" ; y
End Sub
Public Sub test(i As Integer,j As Integer)
i = i + 1
j = j + 1
End Sub
Visual Basic 程序设计
6.3.2 按值传递按值传送时传送的不是实参的值,仅传送实参变量的副本,执行完调用语句后,调用程序中的实参值不会改变。
按值传递形参的语法特点:
在相应的形式变量前加,ByVal”关键词如,Public Sub test(ByVal j As Integer)
……
End Sub
Visual Basic 程序设计
6.3.2 按值传递例,Private Sub Command1_Click()
Dim m As Integer,n As Integer
m = 15,n = 20
Print,调用前,m="; m,"n="; n
Call value(m,n)
Print,调用后,m="; m,"n="; n
End Sub
Private Sub value(ByVal x%,ByVal y As Integer)
x = x + 20,y = y + x
Print,返回前,x="; x,"y="; y
End Sub
Visual Basic 程序设计数组可以作为形式参数。
定义格式,Public 过程名( 形参数组名 () AS 类型 )
说明:
形参数组只能 按地址传递 参数。
对应实参的类型,实参只写数组名,后面不加括号 。
长度必须和形参一致,
在被调用的过程中不要再用 Dim对形参声明,若动态数组时,可以用 ReDim来重新定义数组的维界与大小。
6.3.3 数组参数
Visual Basic 程序设计例:
Private Sub change(a() As Integer)
Dim i As Integer
ReDim a(7)
For i = 1 To 7
a(i) = I
Next I
End Sub
Option Base 1
Private Sub Form_Click()
Dim ArrayA() As Integer,i As Integer
ReDim ArrayA(5)
Print "调用前上界是,"; UBound(ArrayA)
Call change(ArrayA)
Print "调用后上界是,"; UBound(ArrayA)
End Sub
Visual Basic 程序设计对象也可以作为参数传递,但也只能是 按地址 来传递。
在形参中若是控件,则类型声明为,Contral”,若是窗体,
则类型声明为,Form”。
定义格式,Public 过程名( 变量名 AS Contral)
Public 过程名( 变量名 AS Form)
6.3.4 对象参数
Visual Basic 程序设计
6.3.4 对象参数例,Private Sub Command1_Click()
Call objarg(Label1)
End Sub
Public Function objarg(lad As Control)
lad.BackColor = vbYellow
lad.ForeColor = vbRed
lad.FontSize = 18
lad.FontItalic = True
lad,Font,name = "隶书 "
lad.Caption = "对象的参数传递 "
End Function
Visual Basic 程序设计
6.4 变量的作用域变量的作用域过程的作用域静态变量示例
Visual Basic 程序设计
6.4 变量的作用域应用程序
(.vbp文件 )
类模块 (.cls)文件一个或若干个窗体 模块 (*.frm)文件用户自定义子过程 (Sub)
用户自定义函数过程 (Function)
事件过程 (Sub)
用户自定义子过程 (Sub)
用户自定义函数过程 (Function)
一个或若干个标准模块 (*.bas)文件全局级模块级过程级
Visual Basic 程序设计
6.4.1 变量的作用域
1.局部变量作用域:定义的过程内,
指在过程内用 Dim语句声明的变量,或不加声明直接使用的变量 ;
只能在本过程中使用,别的过程不可访问;
局部变量随过程的调用而分配存储单元,并进行初始化 ;该过程体结束,占用的存储单元被释放;
不同过程中可有相同名称的变量,彼此互不相干。
使用局部变量有利于程序的调试
Visual Basic 程序设计
6.4.1 变量的作用域
2.窗体 /模块级变量
作用域:定义变量的窗体 /模块内 。
定义位置:指在窗体 /模块的,通用声明,中
定义词:用 Dim语句或 Private语句声明的变量
使用范围:可被本窗体 /模块的任何过程访问。
Visual Basic 程序设计
6.4.1 变量的作用域
3.全局变量
作用域:为整个应用程序内
定义位置,在标准模块或窗体的,通用声明,段中
关键词,用 Public语句声明的变量。
调用对象,可被应用程序中的任何过程或函数访问。
全局变量的值在整个应用程序中始终不会消失和重新初始化,只有当整个应用程序结束时,才会消失。
思考,如果出现不同作用域的同名变量,系统会如何处理?
Visual Basic 程序设计
6.4.2 过程的作用域
1.窗体 /模块级
指在某个窗体或标准模块内定义的过程;
定义子过程或函数时,加 Private关键字;
过程只能被本窗体或本标准模块中的过程调用
2.全局级
指在窗体或标准模块中定义的过程,其默认是全局的,也可加 Public进行说明。
全局级过程可供该应用程序的所有窗体和所有标准模块调用,调用方式有如下两种:
1.在窗体定义的过程,外部过程调用时,必须加窗体名
2.在标准模块定义的过程,外部过程均可调用,但过程名必须唯一,否则要加标准模块名
Visual Basic 程序设计
6.4.3 静态变量每次调用过程时,用 Static说明的变量保持原来的值,
而用 Dim说明的变量,每次调用过程时,都重新初始化。
使用格式:
Static 变量名 [As 类型 ]
Static Function 函数名 ([参数列表 ])[As 类型 ]
Static Sub 过程名 [(参数列表 )]