
第三章应用程序接口设计及代码编写 一、要点解析 本章以一个简单的计算器应用程序为实例,围绕B应用程序界而设计和代码设计,较 系统地分析了可视化编程的步骤,介绍了可视化界而设计方法、菜单设计及密体设计的原则、 各种常用控件的用法,以及工程化思想和B结构化程序设计知识。通过本章学习,保应该 能够达到如下学习目标: 1,掌握可视化界面设计的方法 2常握变量和常量的概念及用法 3,掌握运算符及流程粒制语句的用法 4,理解工程化思想和编程风格 5.理解常用函数的使用方法 6.了解窗体设计的基本原则 7.了解“简单计算器”程序设计过程 从“简单的计算器”应用程序开发入手。学习本章内容。 主要知识点分析 1,多窗体程序授计 多窗体应用程序界面设计的一最步露是: (1)添加应用程序所活的所有的窗体,柄块。 (2)设置起动窗体,以及多窗体间的调用关系。 (3)按单窗体设计方法设计每个窗体, 2.如I多文档窗体的设置方法 DI父窗体、DI子窗体的设置及显示方法,见教材61真 3,窗体的运行模式 模态和非模态显示 最前端显示 ToolVindow窗体是示 4,菜单设计 利用繁单编相器(如图31所示)可以设计菜单。在B应用程序中,菜单是一个控件, 与其他控件一样,它具有定义其外观和行为的属性,在设计或运行时可以进行设置或调用。 1
1 第三章 应用程序接口设计及代码编写 一、要点解析 本章以一个简单的计算器应用程序为实例,围绕 VB 应用程序界面设计和代码设计,较 系统地分析了可视化编程的步骤,介绍了可视化界面设计方法、菜单设计及窗体设计的原则、 各种常用控件的用法,以及工程化思想和 VB 结构化程序设计知识。通过本章学习,你应该 能够达到如下学习目标: 1.掌握可视化界面设计的方法 2. 掌握变量和常量的概念及用法 3.掌握运算符及流程控制语句的用法 4.理解工程化思想和编程风格 5.理解常用函数的使用方法 6.了解窗体设计的基本原则 7.了解“简单计算器”程序设计过程 从“简单的计算器”应用程序开发入手,学习本章内容。 主要知识点分析 1.多窗体程序设计 多窗体应用程序界面设计的一般步骤是: (1)添加应用程序所需的所有的窗体、模块。 (2)设置起动窗体,以及多窗体间的调用关系。 (3)按单窗体设计方法设计每个窗体。 2.MDI 多文档窗体的设置方法 MDI 父窗体、MDI 子窗体的设置及显示方法,见教材 p61 页 3.窗体的运行模式 模态和非模态显示 最前端显示 ToolWindow 窗体显示 4.菜单设计 利用菜单编辑器(如图 3.1 所示)可以设计菜单。在 VB 应用程序中,菜单是一个控件, 与其他控件一样,它具有定义其外观和行为的属性,在设计或运行时可以进行设置或调用

离单编铝剂 数据区 标题):门 确定 名称): 取消 常引): 快建理) (Sane) 际动上下文D③:万 协调位置Q):6-aW 厂某选) 反有效) F可见0 厂显示口列表) 编辑区 下-个四 插入) 除) 图3.2菜单编辑器 菜单控件的主要属性: 菜单控件的主要属性 属性 说明 标题(Caption) 相当于控件的说明属性,这些名字出现在菜单栏或菜单之中,如 “文件、“编辑”等。分西条的标题为减号,即“-” 名称(e) 在程序代码中引用菜单控件时使用的名移 者引(Imdex) 设置装单控件数组的下标。相当于控件数组的索引属性 快捷键(Shorteut) 允许为每个角令选定快捷健,即通过健世来选择某个菜单项 复这(Checked) 当“复途”属性设置为T©时,在相应的菜单项旁加上“√”以 表明该菜单项处于活动状态 有效(Enabled) 用米设置菜单项的操作状态,当该属性设置为P1se时,相应的 菜单项星灰色,表明不会响应用户事件 可见(Visible) 该属性设置为False(未选中)时,对应的菜单项不可见, 是示窗口列表 在DI应用程序中,确定菜单控作是否包含一个打开的I子窗 体列表 来单控件的事件:菜单挖件贝有一个事件,即C1ick事件。 菜单有下拉式菜单和弹出式菜单。在创建弹出式菜单时,可以将菜单的“可见”属性设 置为False,这样在窗口顶部菜单栏中将不显示该菜单,但仍然可以使用Popupllenu 方法显示弹出菜单。 通过实验3应熟练掌挥这两类菜单的创建方法。并通过创建工具栏掌挥ToolBar, ImageList和StatusBar控件的用法。 5,单选忸和复选框控件 2
2 菜单控件的主要属性: 菜单控件的主要属性 属性 说明 标题(Caption) 相当于控件的说明属性,这些名字出现在菜单栏或菜单之中,如 “文件”、“编辑”等。分隔条的标题为减号,即“-” 名称(Name) 在程序代码中引用菜单控件时使用的名称 索引(Index) 设置菜单控件数组的下标。相当于控件数组的索引属性 快捷键( Shortcut) 允许为每个命令选定快捷键,即通过键盘来选择某个菜单项 复选( Checked) 当“复选”属性设置为 True 时,在相应的菜单项旁加上“”以 表明该菜单项处于活动状态 有效(Enabled) 用来设置菜单项的操作状态,当该属性设置为 False 时,相应的 菜单项呈灰色,表明不会响应用户事件 可见(Visible) 该属性设置为 False(未选中)时,对应的菜单项不可见。 显示窗口列表 在 MDI 应用程序中,确定菜单控件是否包含一个打开的 MDI 子窗 体列表 菜单控件的事件:菜单控件只有一个事件,即 Click 事件。 菜单有下拉式菜单和弹出式菜单,在创建弹出式菜单时,可以将菜单的“可见”属性设 置为 False,这样在窗口顶部菜单栏中将不显示该菜单,但仍然可以使用 PopupMenu 方法显示弹出菜单。 通过实验 3 应熟练掌握这两类菜单的创建方法。并通过创建工具栏掌握 ToolBar、 ImageList 和 StatusBar 控件的用法。 5.单选钮和复选框控件 图 3.2 菜单编辑器 数据区 编辑区

单选团和复选無的生要属性 属性 说明 Value 单透纽的Yalue属性可以设置为Tue或False,Te表示单选 按组被选中,按细的中心有一个圆点。Fa1se为默认设置,表示单选 按纽未被选中。 复遗框的Ya1ue属性可以设置为0,1、2 0-nchecked:默认设置,表示没有选中该复选医 I-checked:表示透中该复达框 2-ayed山复选框为灰色,表示禁止用户选择复这框 Alignment 用来设置单选组和复选框控件的对齐方式: 0 eft Justi「y时表示控件在左边,标愿显示在控件右边: 【-Left Justif)时表示控件在右边,标题显示在挖件左边: Style 用米指定单这纽和复选框的显示方式。Style属性可以设置为数值0 或1 单选纽和复选柜控件的主要事件是CIik事件。 6。列表框和组合程控件 列表框和组合把控作的常用属性 属性 说明 List Lst属性是一个字符串数组,用来存做到列表框或组合框中的 各个透项的内容。 应注意List数组是从list(O)开始的,如果list数组中有n 个元素,则最后一个列表项对应于元素List(-1)。 ListIndex 用来设置和返回被选中的列表项在Lst数组中的下标序号。如在 List1选中第2项,则ListIndex-l.ListIndex从0开始, Text 用于存做被选中列表项的文本内容 ListCount 用于赵料列表柜中的项目的总数日 Style 只适用于组合框。它有0、1,2三个可选值 列表框和组合框控件的常用方法: dItc帽方法:用于将项目茶加到列表框或组合框控作, C1ea此方法:用来到除列表框和组合医中的所有项目。 RemoveIt用于从列表糕成组合根中剩除一项。 列表框和组合框控件的常用事件,C1ck事件 7,通用对话枢控件 通用树话框控件C0mm1alog是一组标准对话框。它提供打开和保存文件,设置打印 选项、选择颜色和字体等操作。 通过选择“工程一都件”中的”Microsoft Common Dialog Controle6.0(SP3)”可以将 ComonDialog控件添加到工具箱中,然后放置在需要的窗体,设置其属性。 8,变量的有关概念 变量是指在程序运行期间其值可以变化的量。变量具有名字和数据类型两个特性。变量 的名字用于在程序中标识变量和使用变量的植,数据类型则标识变量中能保存螺种类型的数 3
3 单选纽和复选框的主要属性 属 性 说 明 Value 单选纽的 Value 属性可以设置为 True 或 False。True 表示单选 按纽被选中,按纽的中心有一个圆点。False 为默认设置,表示单选 按纽未被选中。 复选框的 Value 属性可以设置为 0、1、2 0-Unchecked:默认设置,表示没有选中该复选框 1- checked:表示选中该复选框 2-Grayed:复选框为灰色,表示禁止用户选择复选框 Alignment 用来设置单选纽和复选框控件的对齐方式。 0-Left Justify 时表示控件在左边,标题显示在控件右边; 1-Left Justify 时表示控件在右边,标题显示在控件左边。 Style 用来指定单选纽和复选框的显示方式。Style 属性可以设置为数值 0 或 1 单选纽和复选框控件的主要事件是 Click 事件。 6.列表框和组合框控件 列表框和组合框控件的常用属性 属 性 说 明 List List 属性是一个字符串数组,用来存放到列表框或组合框中的 各个选项的内容。 应注意 List 数组是从 List(0)开始的,如果 List 数组中有 n 个元素,则最后一个列表项对应于元素 List(n-1)。 ListIndex 用来设置和返回被选中的列表项在 List 数组中的下标序号。如在 List1 选中第 2 项,则 ListIndex=1。ListIndex 从 0 开始。 Text 用于存放被选中列表项的文本内容 ListCount 用于返回列表框中的项目的总数目 Style 只适用于组合框。它有 0、1、2 三个可选值 列表框和组合框控件的常用方法: AddItem 方法:用于将项目添加到列表框或组合框控件。 Clear 方法:用来删除列表框和组合框中的所有项目。 RemoveItem:用于从列表框或组合框中删除一项。 列表框和组合框控件的常用事件:Click 事件 7.通用对话框控件 通用对话框控件 CommonDialog 是一组标准对话框,它提供打开和保存文件、设置打印 选项、选择颜色和字体等操作。 通过选择“工程—部件”中的”Microsoft Common Dialog Control6.0(SP3)”可以将 CommonDialog 控件添加到工具箱中,然后放置在需要的窗体,设置其属性。 8.变量的有关概念 变量是指在程序运行期间其值可以变化的量。变量具有名字和数据类型两个特性。变量 的名字用于在程序中标识变量和使用变量的值,数据类型则标识变量中能保存哪种类型的数

据。一个变量在一个时射只能存放一个植,当新的数据存放到变量中时,原米的数那就不再 存在。 变量声明的方法有显式声明和隐性声明。在编写代码时最好对每个变量都进行显式声 明。任何变量在被声明后均会有一个初始值。一般情况下,数值型变量的初始植为0,字符 串变量初始值为空字符半,即”,变体型变量初始值为空值,即和山植。布尔型的初值为 假,即P1s©。当空值的变体变量在表达式中参加运算时,系统会根据实小情况将其解释为 0或空字符串。 9,变量的作用域和变量的生命周期 变量的作用域是指变量的有效作用期间,在有效区间内,变量能够被程序访(,其值能 够被程序调用:变量的生命周期是指能够保存变量值的时间段。二者都可以从过程级变量、 窗体级和柄块级变量,全具变量来理解并加以区分。 B提侯三类模块,即窗体模块,标准榄块和类模块,VB的所有代码都存错在核块中。 窗体核块是大多数B应用程序的基础。对干只色括一个窗体的应川程序,程序的所有代码 都存储在窗体模块中,对于具有多个窗体的程序时,可能在几个窗体中都有要执行的公共代 码,为了避免两个窗体中出现重复代码,可以创建一个标准模块,在其中包含实现公共代码 的过程。 过程级变量也称局都变量,是雷在过程内部声明的变量,其作用线是过程内部,只有在 该过程中的代码才能访问这个变量,不能应用于程序的其它部分,其生命周期是雷该变量在 过程执行期同才存在,当过程执行结束时,过程级变量的值不再保留,它所占的内存空间也 被释放,直到下一次调用该过程时,才重新给该变量分配存储空间,赋予新值,这时该变量 的另一个生命周期又开始了,该变量在过程中用D■关键字米声明, 应当特测注意的是静态变量属于过程级变量,尽管在过程外不隆访问它,但静态变量在 整个程序运行期却一直存在着,即使过程结束,变量的值也仍然保留着。 窗体领和核块级变量是指在窗体或核块内部声明的变量,其作用域是整个窗体成榄块, 只有在该窗体或横块中的代马才能访间这个变量,离开这个模块或密体,该变量纹不起作用 了,例如窗体下ml模块中的变量不能用于窗体Fa2模块,该变量的生金周期是整个窗体 成柄块。在窗体核块代码编辑器的顶部用Pr1vate关键字声明。 全局变量也称核块公有变量,是指在整个应用程序军可以使用的变量,该变量在任何时 段都存在着,是一种无时无刻不在的变量,在标准枫块代马编铜器的顶部用b1iε关健字 声明。 10,数据类型 B服.0定文了1!种数据类型,它们是整型、长整型、单精度浮点型、双精度浮点型、 货币吸、字节型、字符串重、布尔型、日期型、变体型和对象型。 11。运算符和表站式 B中有四种类型的运算符,即算术运算符、美系运算符、逐辑运行符和字符申连接符。 (1)算术运算符和算术表达式 优先级 算术运算符 运算 算术表达式例子 结果 乘方 32 9 2 取负 =4 4 3 乘法 36 18 浮点除法 10/3 333333333333
4 据。一个变量在一个时刻只能存放一个值,当新的数据存放到变量中时,原来的数据就不再 存在。 变量声明的方法有显式声明和隐性声明,在编写代码时最好对每个变量都进行显式声 明。任何变量在被声明后均会有一个初始值。一般情况下,数值型变量的初始值为 0,字符 串变量初始值为空字符串,即"",变体型变量初始值为空值,即 Null 值。布尔型的初值为 假,即 False。当空值的变体变量在表达式中参加运算时,系统会根据实际情况将其解释为 0 或空字符串。 9.变量的作用域和变量的生命周期 变量的作用域是指变量的有效作用期间,在有效区间内,变量能够被程序访问,其值能 够被程序调用;变量的生命周期是指能够保存变量值的时间段。二者都可以从过程级变量、 窗体级和模块级变量、全局变量来理解并加以区分。 VB 提供三类模块,即窗体模块、标准模块和类模块。VB 的所有代码都存储在模块中。 窗体模块是大多数 VB 应用程序的基础,对于只包括一个窗体的应用程序,程序的所有代码 都存储在窗体模块中,对于具有多个窗体的程序时,可能在几个窗体中都有要执行的公共代 码,为了避免两个窗体中出现重复代码,可以创建一个标准模块,在其中包含实现公共代码 的过程。 过程级变量也称局部变量,是指在过程内部声明的变量,其作用域是过程内部,只有在 该过程中的代码才能访问这个变量,不能应用于程序的其它部分,其生命周期是指该变量在 过程执行期间才存在,当过程执行结束时,过程级变量的值不再保留,它所占的内存空间也 被释放,直到下一次调用该过程时,才重新给该变量分配存储空间,赋予新值,这时该变量 的另一个生命周期又开始了。该变量在过程中用 Dim 关键字来声明。 应当特别注意的是静态变量属于过程级变量,尽管在过程外不能访问它,但静态变量在 整个程序运行期却一直存在着,即使过程结束,变量的值也仍然保留着。 窗体级和模块级变量是指在窗体或模块内部声明的变量,其作用域是整个窗体或模块。 只有在该窗体或模块中的代码才能访问这个变量,离开这个模块或窗体,该变量就不起作用 了,例如窗体 Form1 模块中的变量不能用于窗体 Form2 模块。该变量的生命周期是整个窗体 或模块,在窗体模块代码编辑器的顶部用 Private 关键字声明。 全局变量也称模块公有变量,是指在整个应用程序都可以使用的变量,该变量在任何时 段都存在着,是一种无时无刻不在的变量,在标准模块代码编辑器的顶部用 Public 关键字 声明。 10.数据类型 VB6.0 定义了 11 种数据类型,它们是整型、长整型、单精度浮点型、双精度浮点型、 货币型、字节型、字符串型、布尔型、日期型、变体型和对象型。 11.运算符和表达式 VB 中有四种类型的运算符,即算术运算符、关系运算符、逻辑运行符和字符串连接符。 (1)算术运算符和算术表达式 优先级 算术运算符 运算 算术表达式例子 结果 1 ^ 乘方 3^2 9 2 - 取负 - 4 -4 3 * 乘法 3*6 18 3 / 浮点除法 10/3 3.33333333333

4 1 整数除法 103 5 Mod 取核 10od3 6 卡 如法 34 6 减法 3-4 (2)美系运算符和关系表达式 关系运算符用于对两个表达式的值进行比较,比较的结果为布尔值T四e(真)或False (股) 关系运算符 运算符 运算 关系表达式例子 结果 等于 2=3 False 或( 不等于 203 True 大于 2>3 False 小于 28) True d 与 当两个表达式均为真时,结果 (3>8)d(58)Xar(56 True Egy 等阶 当两个表达式同时为真或同时 (3c8)xor(58)ar(5<6 False 6 lap 蕴含 当第一个表达式为真,且第二 (3<8)1p(5)6 False 个表达式为假时。结果为假。 否测为真。 (4)字符串连接符 字符串运算符有两个:“表”,“+”,其作用都是将两个学符串连接起米,合并成一个新的 字符弗。 “&”会自动将丰字符串类型的数据转换成字符串后再进行连接,而“+”则不能白动转 换。例如: "Hello'”&"orld" 结果为”e1 lo World'" “Check”&123 结果为”Check123” “Check+l23 错误 5
5 4 \ 整数除法 10\3 3 5 Mod 取模 10Mod3 1 6 + 加法 3+4 7 6 - 减法 3-4 -1 (2)关系运算符和关系表达式 关系运算符用于对两个表达式的值进行比较,比较的结果为布尔值 True (真)或 False (假)。 关系运算符 运算符 运算 关系表达式例子 结果 = 等于 2=3 False <>或>3 True > 大于 2>3 False = 大于等于 2>=3 False 8) True 2 And 与 当两个表达式均为真时,结果 才为真,否则为假。 (3>8)And(58)Or(58)Xor(58)Xor(56) False (4) 字符串连接符 字符串运算符有两个:“&”、“+”,其作用都是将两个字符串连接起来,合并成一个新的 字符串。 “&”会自动将非字符串类型的数据转换成字符串后再进行连接,而“+”则不能自动转 换。例如: “Hello”&”World” 结果为” Hello World” “Check”&123 结果为” Check123” “Check”+123 错误

Visual Bas1c表达式中运算符的优先缓是,算术运算符→关系运算符→逻辑运算符 例如:授a=3,b=5,c=-1.广7,则以下表达式按标注①@的顺序进行运算。 th》t过nda>=50 r Not e00rdk0 ①8②6 ④False False False T ⑦True True 注意:当运算符优先级相同时,按照它们从左到右出现的顺序进行计算。可以用括号改 变优先顺序,括号内的运算总是优先于括号外的运算。目在括号之内,运算符的优先顺序不 变。 12.常用橘数 (1)数值型函数 常用数值型函数 函数名 说明 爷例 结果 Ahs (x) 返国x的绝对值 Ahs(-3.5) a.6 Sgr(x) 返国x的平方根 Sor (9) 3 Exp(x) 运国以©为底的指定函数 Ep(1) 2.71828 Hex (x) 将十进制数x转换成十六大进制数 ex(1000) 38 0ct(x) 将十进制数x转换成八进制数 0et(100) 144 Fix(x) 运国x的整数部分 Fix(-3.5) -3 Fix(3.5) 3 Int(x) 运国不大于x的最大整数 1nt-3.5) -4 Int(3.5) 3 Cint G) 按四舍五入返回x的值 Cint (3.5) 4 Rnd[(x)] 产生0一-1之间的单精度随机数 2字符串函数 字符申函数 函数名 说明 举例 结果 Len(x) 返目字符串x的长度 Lcn(123M56789) Trin(x) 去掉字符串x左右两边的空格字 Tria(AB AB 符 Left(x.) 取字符串x左边的■个字符 Left(“BcDE”.2) “部” Right (x.n) 取字符半x右边的。个字符 Right(“ABCDE”,2) E Mid,n,)从字符串x的第n个字接开始取nMid(“ABE”,2, ECD 6
6 Visual Basic 表达式中运算符的优先级是:算术运算符→关系运算符→逻辑运算符 例如:设 a=3,b=5,c= -1,d=7,则以下表达式按标注①~⑩的顺序进行运算。 a+b > c+d And a>=5 Or Not c>0 Or d<0 ①8 ②6 ④False ⑤False ⑥False ③True ⑦True ⑧False ⑨True ⑩True 注意:当运算符优先级相同时,按照它们从左到右出现的顺序进行计算。可以用括号改 变优先顺序,括号内的运算总是优先于括号外的运算。但在括号之内,运算符的优先顺序不 变。 12.常用函数 (1)数值型函数 常用数值型函数 函数名 说明 举例 结果 Abs(x) 返回 x 的绝对值 Abs(-3.5) 3.5 Sqr(x) 返回 x 的平方根 Sqr(9) 3 Exp(x) 返回以 e 为底的指定函数 Exp(1) 2.71828 Hex(x) 将十进制数 x 转换成十六进制数 Hex(1000) 3E8 Oct(x) 将十进制数 x 转换成八进制数 Oct(100) 144 Fix(x) 返回 x 的整数部分 Fix(-3.5) Fix(3.5) -3 3 Int(x) 返回不大于 x 的最大整数 Int(-3.5) Int(3.5) -4 3 Cint(x) 按四舍五入返回 x 的值 Cint(3.5) 4 Rnd[(x)] 产生 0-1 之间的单精度随机数 {2}字符串函数 字符串函数 函数名 说明 举例 结果 Len(x) 返回字符串 x 的长度 Len(123456789) 9 Trim(x) 去掉字符串 x 左右两边的空格字 符 Trim( AB ) AB Left(x,n) 取字符串 x 左边的 n 个字符 Left(“ABCDE”,2) “AB” Right(x,n) 取字符串 x 右边的 n 个字符 Right (“ABCDE”,2) DE Mid(x,n,m) 从字符串 x 的第n 个字符开始取 m Mid (“ABCDE”,2, BCD

个字符 Str(x) 将数值型数据1转化为字符串, 5tr(123) “123” 这个函数的运国值总会在前头保 留一个空格。因此多数情况下与 Trin函数结合使用,去掉首部空 格。 Val(x) 将数字字符审x转化为数值型数 Ya1(“123”) 123 据 Ya1(“123AB”) 123 Ya1(",123AB”) ,123 Ya1(“al23AB") 0 Chr(x) 把x的值转化为对型的Asei1i玛 r(13 回车 Chr(10) 换行 Asc (x) 返国字符事x首字荐的AsC11码 Ase("A”) 66 雀 se(“ABC”) 85 UCase (x) 把小可字母转化为大可学母 Case(“be") “ABC Lease (x) 把大写字母转化为小写字母 Lease (ABe) "abe" {3日期函数 日期函数 函数名 说明 举例 结黑 Now 返目系统日期和时间 Now 0-10-21-21:15:30 Date 返目系统日期 Date 04-10-21 Time 返目系饶时间 Tine 21:15:30 Year(x) 返日x表示的日期中的年份号 设-+10/21/12004=2004 Month(x) 返国x表示的日期中的月份号 设10/21/12004年 10 Day(x】 返目x表示的日期中的日期号 投-10/21/12004年 21 eeay()返日x表示的日期中的星期号 设=10/21/12004年 13。流程控件语句 (1)顺序结构 顺序结构是最简单和最基本的结构,当执行顺序结构时,将按型语句在程序中的先后顺 序依次执行。其特点是流程直观易读,结构简明。通常将赋值语句、注释语句、Prit方法, InputBox函数、gox函数等归纳在顺序结构中。 (2)选择结构 第一种选释结构:IfThe0以lse语句 根据功能不问,1f+Then--Else语句又有以下5种形式: ①IfTb6n语句 格式: If条件表达式正n单语句 功能:如果条件表达式为真(T)时。程序执行后面的单语句。例如: a=40 b=50 Ifa·b Then Print"相等 7
7 个字符 3) Str(x) 将数值型数据 x 转化为字符串, 这个函数的返回值总会在前头保 留一个空格,因此多数情况下与 Trim 函数结合使用,去掉首部空 格。 Str(123) “ 123” Val(x) 将数字字符串 x 转化为数值型数 据 Val(“123”) Val(“123AB”) Val(“.123AB”) Val(“a123AB”) 123 123 .123 0 Chr(x) 把 x 的值转化为对应的 Ascii 码 Chr(13) Chr(10) 回车 换行 Asc(x) 返回字符串 x 首字符的 Ascii 码 值 Asc(“A”) Asc(“ABC”) 65 65 UCase(x) 把小写字母转化为大写字母 UCase(“Abc”) “ABC” Lcase(x) 把大写字母转化为小写字母 Lcase(ABc) “abc” {3}日期函数 日期函数 函数名 说明 举例 结果 Now 返回系统日期和时间 Now 04-10-21-21:15:30 Date 返回系统日期 Date 04-10-21 Time 返回系统时间 Time 21:15:30 Year(x) 返回 x 表示的日期中的年份号 设=#10/21/12004# 2004 Month(x) 返回 x 表示的日期中的月份号 设=#10/21/12004# 10 Day(x) 返回 x 表示的日期中的日期号 设=#10/21/12004# 21 WeekDay(x) 返回 x 表示的日期中的星期号 设=#10/21/12004# 4 13.流程控件语句 (1) 顺序结构 顺序结构是最简单和最基本的结构,当执行顺序结构时,将按照语句在程序中的先后顺 序依次执行。其特点是流程直观易读,结构简明。通常将赋值语句、注释语句、Print 方法、 InputBox 函数、MsgBox 函数等归纳在顺序结构中。 (2)选择结构 第一种选择结构:If…Then…Else 语句 根据功能不同,If…Then…Else 语句又有以下 5 种形式: ① If…Then 语句 格式 : If 条件表达式 Then 单语句 功能:如果条件表达式为真(True)时,程序执行后面的单语句。例如: a = 40 b = 50 If a = b Then Print "相等

此例中,a不等于b,因此不执行Print“相等”语句. ②If…Then'-End If语句(单分之结构) 格式; If条件表达式en 一组语句 End If 功能:如果条件表达式为真(Tue)时,程序执行Then和End If之间的一组语句。 注意:一组语句是由多个语句组成,但允许具有一个语句的情况,EdIF语句不能少。 例如:下面的两组语句是等价的 Ifa=b Then Print“相等“ 或 If a b Then Print“相等 End If @If..Thon1 seEnd If语句(双分之错构) 格式 If条件表达式en 第一组语句 Else 第二组语句 End If 功能:当条件表达式为真,则执行第一组语句,否则执行第二组语句: 例如: Private Sub For■aad0 Dim a As Integer,b As Integer a=40 b=50 If a>b Then Print“大数是::a Else Print“大数是:”:b End If End Sub ④If…6 Else.-End If语句(多分之结构,If哥句的帐套形式之一) 格式: If条件表达式1Them If条件表达式2the通 语句块1 Else 语句块2 End If Else If条件表达式3Them 哥句块3
8 此例中,a 不等于 b,因此不执行 Print "相等" 语句。 ② If…Then…End If 语句(单分之结构) 格式 : If 条件表达式 Then 一组语句 End If 功能:如果条件表达式为真(True)时,程序执行 Then 和 End If 之间的一组语句。 注意:一组语句是由多个语句组成,但允许只有一个语句的情况,End If 语句不能少。 例如:下面的两组语句是等价的 If a = b Then Print "相等" 或 If a = b Then Print "相等" End If ③ If…Then…Else…End If 语句(双分之结构) 格式 : If 条件表达式 Then 第一组语句 Else 第二组语句 End If 功能:当条件表达式为真,则执行第一组语句,否则执行第二组语句。 例如: Private Sub Form_Load() Dim a As Integer, b As Integer a = 40 b = 50 If a > b Then Print "大数是:"; a Else Print "大数是:"; b End If End Sub ④ If…Then…Else…End If 语句(多分之结构,If 语句的嵌套形式之一) 格式 : If 条件表达式 1 Then If 条件表达式 2 then 语句块 1 Else 语句块 2 End If Else If 条件表达式 3 Then 语句块 3

Else 语句块4 End If End If 功能:条件表达式1为真时,判断条件表达式2否则判断条件表达式3。如果条件表 达式2为真则执行语句块1,否则执行语句块2, 回If-.ThenElseIft比anE1 seEnd If请句(多分之结构,If语句的怅接形式 之二) 格式 If条件表达式1 Then 语句块1 Elself条件表达式2Then 语句块2 Elself条作表达式3Them Elself条件表达式n Thes 语句块n Else 语句块n+1 End If 功能:如果条件表达式1为真则执行语句块1,否则判断条件表达式2,如果条件表达 式2为真则执行语句块2,否则判斯条件表达式3。依次类推, 注意:该条件判断语句只能执行一个语句组,即有一个条件表达式为真后,不在进行其 它的判断,面直接跳出整个条件判断语句,执行EdIr后面的程序。例如: Private Sub Form Click() Din a As Integer.b As Integer a=40 b=50 If a =b Then Print”相等" Elself a b Then Print”a>b Else Print"a<b” End If End Sub 第二种遮择姑构1 Select Cas0 当条件表达式只有一个变量时,采用Select Case语句会比If-Then-Els0语句更简 洁、易读,程序执行效率更快。 格式: Seleet Case条件表达式 Cas0表达式1 语句组1
9 Else 语句块 4 End If End If 功能:条件表达式 1 为真时,判断条件表达式 2,否则判断条件表达式 3。如果条件表 达式 2 为真则执行语句块 1,否则执行语句块 2。 ⑤ If…Then…ElseIf…then…Else…End If 语句(多分之结构,If 语句的嵌套形式 之二) 格式: If 条件表达式 1 Then 语句块 1 ElseIf 条件表达式 2 Then 语句块 2 ElseIf 条件表达式 3 Then … ElseIf 条件表达式 n Then 语句块 n Else 语句块 n+1 End If 功能:如果条件表达式 1 为真则执行语句块 1,否则判断条件表达式 2,如果条件表达 式 2 为真则执行语句块 2,否则判断条件表达式 3,依次类推。 注意:该条件判断语句只能执行一个语句组,即有一个条件表达式为真后,不在进行其 它的判断,而直接跳出整个条件判断语句,执行 End If 后面的程序。例如: Private Sub Form_Click() Dim a As Integer, b As Integer a = 40 b = 50 If a = b Then Print " 相等" ElseIf a > b Then Print " a > b" Else Print "a < b" End If End Sub 第二种选择结构:Select Case 当条件表达式只有一个变量时,采用 Select Case 语句会比 If…Then…Else 语句更简 洁、易读,程序执行效率更快。 格式: Select Case 条件表达式 Case 表达式 1 语句组 1

Cns0表达式2 语句组2 454 Case else End Select 功能:先计算条件表达式,然后将计算结果与Cs后面的表达式1、表达式2,表 达 式进行比较,相等时,执行对应的语句组。 (2)循环语句 第一种循环语句:For--Next语句 当循环次数己知时,使用此循环。 格式: Par变量=初值to锋值[Step步长] 语句组 Next变量 例如 For a 1 To 5 b=a+1 Print "b",b Next a 该循环执行过程如下: (1)当程序第一次运行到Fr语句时,执行1,并判断a6是否成立。若不成立, 则结束循环,执行Next a后面的语句:若成立,则执行b=a+1和Pr1t“b”,b这两个语 句。 (2)当程序运行到xta语句时,程序管两件事情。第一是按步长累加,即a+1: 第二是将程序转移到Fr语句。 (3)重复循环,直到=6,不在满足<=5的条件,就结束循环。 第二种循环语句:D0+L00p语句 当循环次数无法预知时,可用Do-Loop循环,一儿达到某个条件到,结束箱环.D60op 有3种最常用的语法格式。 格式1: Do While条作表达式 语句组(葡环体) Loop 功能:先判断条件表达式,当条件表达式为真时,执行语句组,否则结束循环。 格式2: Do 语句组(循环体) oop While条件表达式 功能:先执行语句相。再判断语句组的真假,如果为真,继续陆环,如果为假,结束循 环。 格式3: 10
10 Case 表达式 2 语句组 2 …… Case else End Select 功能:先计算条件表达式,然后将计算结果与 Case 后面的表达式 1、表达式 2 …..表 达 式 n 进行比较,相等时,执行对应的语句组。 (2)循环语句 第一种循环语句:For…Next 语句 当循环次数已知时,使用此循环。 格式: For 变量 = 初值 to 终值 [Step 步长] 语句组 Next 变量 例如: For a = 1 To 5 b = a + 1 Print "b", b Next a 该循环执行过程如下: (1)当程序第一次运行到 For 语句时,执行 a=1,并判断 a<=5 是否成立。若不成立, 则结束循环,执行 Next a 后面的语句;若成立,则执行 b=a+1 和 Print “b”,b 这两个语 句。 (2)当程序运行到 Next a 语句时,程序做两件事情。第一是按步长累加,即 a=a+1; 第二是将程序转移到 For 语句。 (3)重复循环,直到 a=6,不在满足 a<=5 的条件,就结束循环。 第二种循环语句:Do…Loop 语句 当循环次数无法预知时,可用 Do…Loop 循环,一旦达到某个条件时,结束循环。Do…Loop 有 3 种最常用的语法格式。 格式 1: Do While 条件表达式 语句组(循环体) Loop 功能:先判断条件表达式,当条件表达式为真时,执行语句组,否则结束循环。 格式 2: Do 语句组(循环体) Loop While 条件表达式 功能:先执行语句组,再判断语句组的真假,如果为真,继续循环,如果为假,结束循 环。 格式 3: