种都计算数值条件以决定是否继续执行。如同If...Then condition 必须是一个数值或者值为 True(非零)或 False(零)的表达式。
在下面的 Do...Loop 循环中,只要condition为True就执行statements。 Do While condition
statements Loop
当Visual Basic执行这个Do循环时会首先测试condition。如果condition为False(零),则跳过所有语句。如果condition为True(非零),则Visual Basic执行语句,然后退回到Do While 语句再测试条件。
因此,只要condition为True或非零,循环可以随意执行多少次。如果condition一开始便为False,则不会执行语句。例如,以下过程将计算某一目标字符串在另一字符串中出现的次数,只要发现目标串就执行循环:
Function CountStrings (longstring, target) Dim position, count position = 1
Do While InStr (position, longstring, target)
position = InStr(position, longstring, target) + 1 count = count + 1 Loop
CountStrings = count End Function
如果目标字符串未出现在另一个字符串中,则InStr返回0,而且不再执行循环。
Do...Loop语句的另一种演变形式是先执行语句,然后在每次执行后测试condition。这种形式保证statements至少执行一次:
Do
statements
Loop While condition
其它两种演变形式类似于前两个,所不同的是,只要condition为False而不是True,它们就执行循环。 循环零次或多次 Do Until condition Statements Loop 至少循环一次 Do Statements Loop Until condition (2)For循环
在不知道循环内需要执行多少次语句时,宜用Do循环。但是,在知道要执行多少次时,则最好使用For...Next 循环。与Do循环不同,For循环使用一个叫做计数器的变量,每重复一次循环之后,计数器变量的值就会增加或者减少。For循环的语法如下:
For 循环变量 = 初始值 To 终值 [Step 步长] [循环体]
[Exit For] [循环体] Next 循环变量
在此格式中,使用了这样几个参数:
? 循环变量:用于统计循环次数的变量,此变量可以从某个值变到另一个值,此变化
的两个相邻数值之间的差值由步长决定。由此可以决定该循环执行了几次,即该循环的循环次数可以确定。该变量为数值型变量。
? 初始值:用于设置循环变量的初始取值,为数值型变量。 ? 终值:用于设置循环变量的最后取值,为数值型变量。 ? 步长:用于决定循环变量每次增加的数值,即变量在变化时的增值,为数值型变量。
一般默认值为1,此时可以省略Step 步长部分。步长的取值可以根据初始值和终值的关系分为正值或负值两种,若初始值大于终值,则必须将步长设为负值才有可能执行内部循环体;若初始值小于终值,则必须将步长设为正值才有可能执行内部循环体。
? 循环体:需要重复执行的部分。
? Exit For:在某些情况下,需要中途退出For循环时使用。
? Next 循环变量:用于结束一次For循环,根据终值和现在循环变量的值的大小关系
决定是否执行下一次循环。其中的循环变量名字必须与For循环开始时的循环变量名字相同。
上述For循环在不存在中间的Exit For语句时的执行过程是:先令循环变量取为初始值,然后检验循环变量的取值是否超出终值:若步长为正值,则检验循环变量是否大于终值,大于为超出状态;若步长为负值,则检验循环变量的取值是否小于终值,小于为超出状态。若循环变量没有超出终值,则执行一次内部的循环体,然后将循环变量加上步长赋值给循环变量本身,再与终值进行比较,判断是否可以执行下一次循环,接着重复上述过程;否则不再执行循环体,直接退出循环,执行循环后的语句。
若存在中间的Exit For语句,则在执行循环体的过程中,满足一特定的条件即可中间跳出For循环,执行其后的语句。一般循环体内不会单独存在此语句,总是用一个条件进行控制,满足时跳出;不满足继续执行循环体。使用Exit For语句只能跳出一层循环,若存在两层For循环嵌套,则只能跳出内层,继续执行外层循环。
若For循环的循环体内没有具体语句,可以用来作为延时使用。循环变量循环了一定次数,虽不执行任何操作,但却花费了一定时间,故可作为延时工具使用。
例如,求1~n(正整数)的所有正整数之和: Dim s,i As Integer For i=1 To n s=s+i Next i
除了上述For循环外,还有一个集合For循环语句,其使用语法如下: For Each 集合中元素 in 集合 [循环体] Next [元素]
该语句对集合中的每个元素进行一次循环,直到集合中无更多的元素时,执行Next后面的语句。
例如,下面的过程把打印机和屏幕共有的字体名全部打印出来:
Dim SFont, PFont
For Each SFont In Screen.Fonts () For Each PFont In Printer.Fonts () If SFont = PFont Then Print SFont End If
Next PFont Next SFont
2.5 简单应用程序创建
创建Visual Basic应用程序的一般步骤为: (1)设计应用程序界面 (2)设置对象属性 (3)编写代码
(4)保存和运行工程 (5)编译与打包 (6)安装运行
2.5.1 创建应用程序界面
用Visual Basic创建一个应用程序,第一步是创建界面,它是用户与应用程序进行交互操作的可视部分。窗体和控件是创建界面的基本构造模块;也是创建应用程序所使用的对象。
窗体是一种对象,由属性定义其外观、由方法定义其行为、由事件定义其与用户的交互。通过设置窗体属性并编写响应事件的Visual Basic代码,就能定义出满足应用程序需要的对象。
控件是包括在窗体对象内的对象。每种类型的控件都有自己的一套属性、方法和事件,以适用于特定的目的。一些控件最适合在应用程序中输入或显示文本。另一些控件能够访问其它的应用程序和处理数据,就象这些远程应用程序是用户自己的代码一样。
1、创建工程
工程文件包含了一个应用程序的所有文件:
(1)窗体文件(.frm):控件及属性、事件过程和自定义过程 (2)窗体的二进制数据文件(.frx),自动产生同名.frx文件。 (3)标准模块文件(.bas) (4)类模块的文件(.cls) (5)资源文件(.res)
(6)ActiveX控件的文件(.ocx)
工程文件(.vbp)就是与该工程有关的全部文件和对象的清单,也是所设置的环境选项方面的信息。每次保存工程时,这些信息都要被更新。所有这些文件和对象也可供其它工程共享。
创建工程首先要从“文件”菜单中选择“新建工程”,然后从“新建工程”对话框中选定“标准 EXE”(首次启动 Visual Basic 时将会显示“新建工程”对话框)。Visual Basic 创建一个新的工程并显示一个新的窗体。
2、创建窗体
窗体(Form)是一个窗口或对话框,是存放控件的容器。打开VB的工程文件,首先看到的就是窗体,因此,窗体是应用程序的第一个对象,也是运行应用程序时,与用户交互操作的实际窗口。窗体有自己的属性、事件和方法,用来控制窗体的外观和行为。
在创建一个新工程时,VB会自动加入一个空白的窗体,用户可以对这个窗体进行设计。也可以自己重新添加新的窗体,方法是在“工程”菜单中,单击“添加窗体”打开“添加窗体”对话框。双击“添加窗体”图标添加一个窗体。
3、添加控件
控件用来获取用户的输入信息和显示输出信息。每个控件都有一组属性、方法和事件。 添加控件的方法就是利用Visual Basic工具箱中的工具在窗体上绘制控件,一般步骤是先在工具箱中单击要绘制的控件的工具,将指针移到窗体上,按住鼠标左键用鼠标画出适合需要的控件大小的方框,然后释放鼠标按钮,控件就出现在窗体上。在窗体上添加控件的另一个简单方法是双击工具箱中的控件按钮。这样会在窗体中央创建一个尺寸为缺省值的控件;然后再将该控件移到窗体中的其它位置。
(1)控件分类
Visual Basic的控件有三种广义分类:
? 内部控件,例如CommandButton和Label控件等。这些控件总是出现在工具箱中,
不象ActiveX 控件和可插入对象那样可以添加到工具箱中,或从工具箱中删除。 ? ActiveX控件,是扩展名为.ocx 的独立文件,其中包括各种版本Visual Basic提供的
控件(DataCombo, DataList控件等等)和仅在专业版和企业版中提供的控件(例如 Listview、Toolbar、Animation 和Tabbed Dialog等),另外还有许多第三方提供的ActiveX控件。 ? 可插入的对象,例如一个Microsoft Excel工作表对象,这些对象能添加到工具箱中,
所以可把它们当作控件使用。其中一些对象还支持自动化(正式的名称为OLE自动化),使用这种控件就可在Visual Basic应用程序中编程控制另一个应用程序的对象。
(2)内部控件
下表总结了 Visual Basic 工具箱中的内部控件。 图标 控件名 类名 描述 复选框 组合框 命令按钮 数据 CheckBox ComboBox 显示 True/False 或 Yes/No 选项。一次可在窗体上选定任意数目的复选框。 将文本框和列表框组合起来。用户可以输入选项,也可从下拉式列表中选择选项。 能与现有数据库连接并在窗体上显示数据库中的信息。 CommandButton 在用户选定命令或操作后执行它。 Data