vb 调用sub过程

合集下载

VB教程 第六章 过程、模块与类

VB教程 第六章 过程、模块与类

2.按地址传递参数 按地址传递参数使过程用变量的内存地址去访问实际变量 的内容。结果,将变量传递给过程时,通过过程可永远改 变变量值。按地址传递参数在 Visual Basic 中是缺省的。 例如: Sub PostAccounts (intAcctNum as Integer) . '这里放语句。 End Sub 3.使用可选的参数 4.提供可选参数的缺省值 5.使用不定数量的参数
下面分别对被调用过程在窗体模块、类模块和标准模块三种 情况说明: ① 窗体中的过程 ② 类模块中的过程 ③ 标准模块中的过程
一个很好的例子: 交通信号灯控制的例子
一个重要的思想(递归 一个重要的思想 递归) 递归
递归就是一个过程调用自己来完成某个特定的 任务。在递归过程中,一个过程的某一步要用 到其自身的上一步或几步的结果。递归分为两 种类型:直接递归和间接递归。Visual Basic的 过程具有递归调用功能。 递归可能会导致堆栈上溢。通常 Static 关键字 和递归过程不在一起使用。使用递归过程要特 别小心,不加控制的递归通常会引起溢出堆栈 空间错误信息。如下例:
作用域不同([Private | Public | Friend]) 生命期不同([Static]) 但是arglist语法较简单:可选的。代表在调用时要传递给 Function 过程的参数变量列表。多个变量应用逗号隔开。 一点注意:若 Function 过程会改变某个数学表达式中变 量的值,则应避免在此表达式中使用该函数。例如: I=2 J=3 X=(Sum (I,J)+1)/Sum(I,J) Function Sum (A As Integer, B As Integer) As String A=A+2 Sum=A+B End Function 结果如何?怎么修改?

submain()在VB中怎么用啊?

submain()在VB中怎么用啊?

submain()在VB中怎么用啊?设置启动窗体在缺省情况下,应用程序中的第一个窗体被指定为启动窗体。

应用程序开始运行时,此窗体就被显示出来(因而最先执行的代码是该窗体的 Form_Initialize 事件中的代码)。

如果想在应用程序启动时显示别的窗体,那么就得改变启动窗体。

要改变启动窗体,请按照以下步骤执行:从“工程”菜单中,选取“工程属性”。

选取“一般”。

在“启动对象”ListBox中,选取要作为新启动窗体的窗体。

选取“确定”。

没有启动窗体时的启动有时候也许要应用程序启动时不加载任何窗体。

例如:可能想先运行装入数据文件的代码,然后再根据数据文件的内容决定显示几个不同窗体中的哪一个。

要做到这一点,可在标准模块中创建一个名为 Main 的子过程,如下面的例子所示。

Sub Main()Dim intStatus As Integer'调用一个函数过程来检验用户状态。

intStatus = GetUserStatus'根据状态显示某个启动窗体。

If intStatus = 1 ThenfrmMain.ShowElsefrmPassword.ShowEnd If这个过程必须是一个子过程,且不能在窗体模块内。

欲将 Sub Main 过程设为启动对象,可从“工程”菜单中,选取“工程属性”,再选“一般”,然后从“启动对象”框中选定“Sub Main”。

显示启动时的快速显示如果启动时有一个较长的执行过程,例如要从数据库中装入大量数据或者要装入一些大型位图,这时可能希望在启动时给出一个快速显示。

快速显示是一种窗体,它通常显示的是诸如应用程序名,版权信息和一个简单的位图等内容。

启动 Visual Basic 时所显示的屏幕就是一个快速显示。

要显示快速显示,需用 Sub Main 过程作为启动对象,并用 Show 方法显示该窗体:Private Sub Main()'显示快速显示。

frmSplash.Show'在此处添加启动过程。

VB教程之 “过程”

VB教程之  “过程”
31
5.4 过程递归调用
说明:
递归处理分递推和回归两个过程,如下图所示。
使用递归算法必须要满足以下的递归条件: (1)存在递归结束条件及结束时的值;
(2)能用递归形式表示,且递归向终止条件发展。
32
5.4 过程的递归调用
例2:编求菲波纳契数列f(n)的递归函数。
F(1) = 1 F(2) = 1 F(n) = F(n-1) + F(n-2)
17
一、判断正确与错误 1、在定义了一个函数后,可以象调用任何一个VB 内部函数一样使用它,即可以在任何表达式、 语句或函数中引用它。 ( ) 2、以下两个语句都调了名为Year(Now)的函 数 Call Year(Now) ( ) Year Now ( ) 二、Sub过程与Function 过程最根本的区别是 ___. A. Sub过程可以使用Call语句或直接使用过程名 调用,而Function过程不可以。 B. Function过程可以有参数,Sub过程不可以。 C. 两种过程参数的传递方式不同。 D. Sub过程不能返回值,而Function 过程能返回 值。 18
调用形式: 函数名(实参列表)
说明:调用函数不能独立成为一条语句,它必须是
语句的一部分。 如果不需要函数的返回值,则:
Call 函数名([参数列表]) 或 函数名 [参数列表]
注意:有Call关键字时,函数名后面必须有括号。
14
例5.3 设计一个由三角形的3条边长,计算其 面积的函数,如果3条边不能构成三角形,则弹 出消息框,提示出错。
21

例5.4:编写一个子过程,实现两个数据的交 换。
Sub Exchange(ByRef a As Double, ByRef b As Double) Dim t As Double t=a a=b b=t End Sub

调用Sub过程的语句格式如下-VisualBasic程序设计

调用Sub过程的语句格式如下-VisualBasic程序设计

第7章 过程
第7章 过程
7.2 Function 过程
7.2.1 定义Function过程
(4)[Exit Function]是退出Function过程的语句, 它常常是与选择结构(If或Select Case语句)联用,即 当满足一定条件时,退出Function过程。 (5)<参数表>中的形参的定义与Sub过程完全相同。 (6)Static、Private定义的Function过程为局部过 程,只能在定义它的模块中被其它过程调用。 (7)Public定义的Function过程为公有过程,可被任 何过程调用。 (8)过程可以无形式参数,但括号不能省。
调用Function过程的语句 调用Function过程的语句格式如下: 函数名(<参数表>) 功能:调用一个已定义的Function过程。 注意事项: (1)参数表中的参数称为实参,形参与实参 传递与Sub过程相同。 (2)函数调用只能出现在表达式中,其功能 是求得函数的返回值。
第7章 过程
7.2 Function 过程
调用Sub过程的语句格式如下: 子过程名 [<参数表>] 或: Call 子过程名([<参数表>]) 功能:调用一个已定义的Sub过程。
第7章 过程
7.1 Sub 过程
7.1.3 调用Sub过程
例 7-1 设计一个窗体,用“字符”输出 图形,程序的运行结果如图所示。
演示 程序
第7章 过程
7.2 Function 过程
第7章 过程
7.2 Function 过程
7.2.2 创建Function过程
同Sub过程一样,Function过程是一个通用 过程,它不属于任何一个事件过程,因此它不能 在事件过程中建立,Function过程可在标准模块 中,或在窗体模块中建立。

vb教学大纲

vb教学大纲

计算机专业(visual Basic程序设计)教学大纲一、课程性质与任务Visual Basic程序设计课程是中等职业学校计算机学生必修的一门公共基础课。

通过学习学会可视化程序设计工具的使用,掌握面向对象的程序设计方法和事件驱动的编程手段,掌握VB程序结构等要素并能熟练编程解决问题。

为学生的后续课程提供程序设计能力保障。

本课程主要内容有,介绍visual basic程序设计的基础知识与方法,visual basic 工作环境,可视化编程的概念和步骤,visual basic语言基础,顺序结构程序设计,选择结构程序设计,循环结构程序设计,数组,过程图形和图像设计,程序调试技巧等。

二、课程教学目标1、要求学生了解Visual Basic 开发环境、对象和事件驱动的基本概念;2、了解数据类型、运算符与表达式,掌握基本的输入输出语句;3、了解各标准控件的属性、事件和方法;学会界面设计;4、了解并掌握Visual Basic的控制结构,尤其是选择结构、多分支结构及循环结构;5、了解并掌握数组的定义和用法,尤其是动态数组;6、掌握SUB过程和FUNCTION过程的定义、参数传递,尤其是可变参数、可选参数、对象参数,学会用递归技术解决特殊问题,学会用SHELL函数调用外部程序;7、掌握菜单程序设计和对话程序设计方法;8、掌握多窗体程序设计方法;了解多文档界面设计;9、了解数据文件的概念,掌握顺序文件和随机文件的使用方法,学会文件系统控件的设计,掌握文件操作的命令。

三、教学内容与要求(一)本大纲对教学要求的层次表述1、对知识的教学要求分为了解、理解和掌握三个层次。

了解:指对知识有感性的、初步的认识。

理解:指对基本概念、基本知识有一定的理性认识,能用正确的语言进行叙述和解释。

掌握:在理解的基础上,能够解决与所学知识相关的应用问题。

2、对技能的教学要求分为会操作和熟练操作两个层次。

应会:指能够运用所学的技能进行独立操作,并能正确完成指定任务。

vb过程

vb过程

9.3.4
数组参数的传送
Visual Basic允许把数组作为实参传送到过程中。如定义: Sub S(a(),b()) …… End Sub 可以用下面的语句调用该过程: Call S(a(),b())
数组参数一般通过传地址方式传送。在传送数组时,除遵 守参数传送的一般规则外,还应注意以下几点: (1)为了把一个数组的全部元素传送给一个过程,应将 数组名分别放入实参表和形参表中,并略去数组的上下界, 但括号不能省略。 (2)如果不需要把整个数组传给通用过程,可以只传送 指定的单个元素,这需要在数组名后面的括号中写上指定 元素的下标。例如:
全国计算机等级考试二级教程
主讲教师
潘大胜
结构化程序设计思想的要点之一就是对一个 复杂的问题采用模块化,把一个较大的程序划 分为若干个模块,每个模块只完成一个或若干 个功能。这些模块通过执行一系列的语句来完 成一个特定的操作过程,因此被称为“过程”。
9.1 9.3 9.4 9.5 9.7
Sub过程 参数传送
9.2.1
建立Function过程
1.定义Sub过程
Static|Private|Public Function <过程名>[ (参数列表) ] [As 类型]
[<语句组>]
[过程名=表达式] [Exit Function] [<语句组>] End Function
说明: (1)Function过程以Function开头,以End Function结束, 在两者之间是描述过程操作的语句块,即“过程体”或 “函数体”。格式中的“过程名”、“参数表列”、 “Static”、“Private”、“Public”、“Exit Function”的 含义与Sub过程相同。“As 类型”是Function过程返回 值的数据类型,可以是Integer、Long、Single、Double、 Currency或String,如果省略,则为Variant。

VB过程及其调用

VB过程及其调用

VB进制与字符转换类函数(val)
Val函数:返回包含于字符串内的数字,字符串中是一个适
当类型的数值。
语法:Val(string):必要的string参数可以是 任何有效的字符串表达式!
eg a=val("1234")
返回值是1234
a=val("2 34 7") 返回值是2347
a=val(" 24 and 57") 返回值是24
过 程
过程
VB程序是由过程组成的,每个过程是为了完 成一定的任务,由一组独立的程序代码组成 。
VB分为两类过程
1:事件过程
2:通用过程
Function过程

通用过程

事件过程
sub过程
拓展:
Val函数 变量的作用域 模块的作用域
重点:能够自定义
sub过程和function过 程,能够根据需要自 由调用两个过程!
1:事件过程
注意事项:
(1) :事件过程只能放在窗体模块中
(2):<语句组>为处理事件而编写的程序过 程
(3):可以通过双击对象,然后在代码视图 下选择相应的事件的方法来自动生成事件过 程。
通用过程
当多个不同的事件过程需要执行 一段相同的代码,为了避免代码 的重复,把这段代码独立出来, 作为一个过程,这样的过程称为 通用过程。可见,通用过程是多 个事件过程的,相同之处、公共 部分。
fuction过程的调用
function过程的调用和sub 过程类似
call +函数名(参数1,参数2) 函数名(参数1,参数2,参数3 ) 不加括号也对,有call必须加!
sub过程和function过程的区别

vb中调用模块中的代码

vb中调用模块中的代码

vb中调用模块中的代码在VB中,要调用模块中的代码,你可以使用模块名称和代码的标识符来引用它们。

下面是一些常见的方法:1. 使用模块名称和代码标识符直接调用:vb.ModuleName.CodeIdentifier.例如,如果你的模块名为"Module1",代码标识符为"Sub1",你可以这样调用:vb.Module1.Sub1。

2. 使用模块名称和代码标识符创建对象并调用:vb.Dim obj As New ModuleName.obj.CodeIdentifier.例如,如果你的模块名为"Module1",代码标识符为"Sub1",你可以这样调用:vb.Dim obj As New Module1。

obj.Sub1。

3. 将模块中的代码声明为公共(Public)并在其他地方直接引用:vb.Public Sub Sub1()。

' 代码内容。

End Sub.在其他地方直接使用代码标识符来调用:vb.Sub1()。

4. 如果模块中的代码是函数(Function),可以使用返回值来调用:vb.Dim result As DataType.result = ModuleName.FunctionName(arguments)。

例如,如果你的模块名为"Module1",函数名为"AddNumbers",接受两个整数参数并返回整数结果,你可以这样调用:vb.Dim result As Integer.result = Module1.AddNumbers(5, 10)。

请注意,以上是一些常见的方法,具体的调用方式取决于你的模块和代码的结构和设计。

确保你在调用模块中的代码时使用正确的模块名称和代码标识符。

VB程序设计-过程和函数

VB程序设计-过程和函数

Private Sub Command1_Click()
Print sum(5, 3)
调用函数
End Sub
Function sum(x, y)
s=x+y sum = s
定义函数
End Function
函数和过程的相互转换
Private Sub Command1_Click()
Call sum(5, 3, s) 调用过程
function title(tit,n)
if len(tit)>n then
title=left(tit,n)&"…"
'返回函数值
else
title=tit
'返回函数值
end if
end function
5.7 参数传递
5.7.1 形参与实参
• 形参:置于过程定义时,参数列表中的变 量或数组;在过程被调用前,系统不对其 分配空间;
6.3 子过程与函数的参数传递
1.参数传递方式
过程的参数有两种传递方式:
传值(ByVal)
传地址(ByRef)(默认方式)。
按值传递参数:在形式参数前加上关键字ByVal 表示指定按值传递参数。调用时实际参数仅将值
传递给形式参数,形式参数的任何改变不会影响 实际参数。
按地址传递参数:
在形式参数前加上关键字ByRef表示指定按地址传递参 数。
调用函数 –变量= Function 函数名(参数1,参数2,…) –函数可以向变量一样引用和参与运算
6.2 定义Function过程
定义Function过程说明: 1)Function过程以Function语句开头,以End Function结束;中间代码部分为函数体; 2)函数名有返回值,其值类型由As 数据类型指定; 3)函数体内一般都会至少为函数名赋值一次;如果 不赋值,函数返回值默认为0或空; 4)函数中途可以利用Exit Function退出。

VB中sub和private是什么意思

VB中sub和private是什么意思

VB中sub和private是什么意思Private Sub cmdFind_Click()说明发⽣了按钮的点击事件。

Private Sub是⼀个过程,并且是模块级的。

过程没有返回值public是公有,类中的⽅法或者变量可供其他任何类使⽤private是私有,类中的⽅法或者变量不被任何类⽤,不被⼦类继承protected是保护,类中的⽅法或者变量可被⼦类和同⼀包下的类使⽤私有函数过程,外部不能直接使⽤的!Sub 是过程 Private是私有函数过程外部不能直接使⽤的Sub 语句描述声明 Sub 过程的名称、参数以及构成其主体的代码。

语法[Public | Private] Sub name [(arglist)][statements][Exit Sub][statements]End SubSub 语句的语法包含以下部分部分描述Public 表⽰ Sub 过程可被所有 Script 中的所有其他过程访问。

Private 表⽰ Sub 过程只可被声明该过程的 Script 中的其他过程访问。

Name Sub 的名称,遵循标准变量命名约定。

Arglist 代表在调⽤时要传递给 Sub 过程的参数的变量列表。

⽤逗号隔开多个变量。

Statements 在 Sub 过程主体内所执⾏的任何语句组。

arglist 参数包含下列语法和部分:[ByVal | ByVal] varname[( )]部分描述ByVal 表⽰该参数按值传递。

ByRef 表⽰该参数按引⽤传递。

Varname 代表参数的变量名称,遵循标准变量命名约定。

说明如没有显式地指定使⽤ Public 或 Private,则 Sub 过程默认为公⽤,即它们对于 Script 中的所有其他过程都是可见的。

Sub 过程中局部变量的值在调⽤过程中不被保留。

所有可执⾏代码必须包含于过程中。

不能在另⼀个 Sub 或 Function 过程中定义⼀个 Sub 过程。

vb练习题,电子版 第9章 过程

vb练习题,电子版 第9章 过程

第九章过程教学要求:了解VB 6.0过程的分类,掌握Sub过程和Function过程的建立、定义、调用的不同方法;掌握形参、实参的概念,掌握引用、传值、可选参数、可变参数以及对象参数的概念;掌握数组参数、窗体参数、控件参数的概念和使用,熟练使用Sub过程和Function过程设计应用程序;局部内存分配方法;过程嵌套调用和递归调用;Shell函数的使用。

知识点:Sub过程和Function过程的定义、调用;形参和实参的语法和使用;各种类型的参数传递;局部内存分配方法;过程嵌套调用和递归调用;Shell函数的使用。

内容导航:一、过程(一)Sub过程1.建立Sub过程通用Sub过程的一般格式如下:[Static][Private][Public]Sub 过程名[(参数列表)]语句块[Exit Sub][语句块]End Sub2.调用Sub过程调用引起过程的执行。

也就是说,要执行一个过程,必须调用该过程。

Sub过程的调用有两种方式如下:第一种方式:把过程的名字放在Call语句中,调用格式为:Call 过程名[(实际参数)]第二种方式:把过程名作为语句来使用,在调用Sub过程时,如果省略关键字Call,就成为调用Sub过程的第二种方式。

3.通用过程与事件过程控件事件过程的一般格式为:[Private| Public]Sub 控件名_事件名(参数表)语句组End Sub窗体事件过程的一般格式为:[Private|Public]Sub Form_事件名(参数表)语句组End Sub(二)Function过程1.建立Function过程Function过程定义的格式如下:[Static][Private][Public] Function 过程名[(参数列表)][As 类型][语句块][过程名= 表达式][Exit Function][语句块]End Function2.调用Function过程Function过程的调用比较简单,因为可以像使用Visual Basic内部函数一样来调用Function 过程。

vba编程里面的sub的用法(一)

vba编程里面的sub的用法(一)

vba编程里面的sub的用法(一)VBA编程里面的Sub1. 什么是Sub在VBA编程中,Sub是一种用于定义子程序的关键字。

它可以理解为一个独立的代码块,可以在程序中被调用执行。

Sub是Visual Basic for Applications(VBA)中用于创建宏和自定义函数的主要组件之一。

2. Sub的基本语法Sub语句的基本语法为:Sub SubName()' 执行的代码块End Sub其中,SubName代表子程序的名称,可以根据需要自定义。

代码块部分是Sub子程序要执行的具体操作。

3. Sub的调用方式在编写一个Sub子程序后,可以通过不同的方式进行调用。

下面是几种常见的调用方式:直接调用在主程序中,可以直接使用子程序名称调用Sub:Sub MainProgram()' 主程序的代码块SubName ' 直接调用Sub' 其他逻辑代码End Sub使用参数进行调用可以在Sub子程序中定义参数,以便在调用时传递参数值。

Sub MainProgram()' 主程序的代码块Dim var1, var2 As Integervar1 = 10var2 = 20SubName var1, var2 ' 使用参数调用Sub' 其他逻辑代码End SubSub SubName(num1 As Integer, num2 As Integer)' 执行的代码块Dim result As Integerresult = num1 + num2MsgBox "结果为:" & resultEnd Sub在上述例子中,使用var1和var2作为参数传递给Sub子程序,在子程序中执行操作后,通过MsgBox显示结果。

使用返回值进行调用Sub子程序本身不具有返回值。

如果需要得到子程序的执行结果,可以使用ByRef进行参数传递。

036 VB编程之Sub子过程

036 VB编程之Sub子过程

子过程也可以称为sub过程,或者通用过程,用来完成特定任务。

使用sub过程时,首先要建立它,然后才可以用其过程名来调用它。

接下来,我们一起看看如何创建一个sub过程,以及如何调用它吧。

一、创建sub子过程sub过程需要在代码窗口创建,sub过程不可以创建在其它过程内部,因此你需要在代码窗口中找一处空白的地方,开始创建sub过程。

sub过程的语法格式:说明:1,Sub关键字是子过程开始的标记,End Sub则是子过程结束的标记。

2,Exit Sub可以提前退出子程序3,private修饰符表示该sub过程为私有过程,只能在本模块中使用。

4,public修饰符,则表示为公用过程,可以在整个应用程序中使用。

5,Static修饰符,表示,该过程中所有变量均为静态变量。

6,参数是可选项,如果有多个参数则之间用逗号隔开,即使没有参数也需要在过程名后面加上括号“()”。

7,参数仅在该子过程内部有效,属于局部变量。

8,一般情况下private使用的比较多,也可以不加修饰符,则默认为私有过程。

9,参数列表需要指定数据类型,如果不指定则默认为变体类型。

10,sub子过程括号内的参数列表,实际上就相当于在过程内部定义了这些参数,可以在过程内部直接使用。

举例1:创建一个无参数的sub子过程。

需求:封装一个打印行列数为2×10的,符号为“★”号的子过程,子过程名为printStar。

代码如下:说明:1,子过程名为printStar,我们在起名时尽量有清晰的含义,以方便我们今后的使用。

2,子过程由于无需输入参数,因此过程名printStar后面的括号内没有参数列表。

3,过程内部定义的变量i和j,为局部变量,仅在过程内部有效。

举例2:创建一个有参数的sub子过程需求:封装一个可以打印任意行和列的,任意符号的子过程。

分析:由于要求打印的行数、列数和符号都是任意的,因此我们必须有参数列表,且需要三个参数。

分别为:row、col、symbol,分别用来传递行数、列数和符号,它们的数据类型分为是整型、整型和字符串型。

vb过程7.1-7.3

vb过程7.1-7.3

盐城工学院
Visual Basic 程序设计
7.1.2 通用过程
一般形式 ([参数列表 参数列表]) [ Private | Public ] Sub 过程名 ([参数列表]) 局部变量和常数声明] [局部变量和常数声明] 语句块 [ Exit Sub ] 语句块 End Sub
盐城工学院
Visual Basic 程序设计
盐城工学院
Visual Basic 程序设计
通用Sub Sub过程调用 7.3.2 通用Sub过程调用
Call语句 Call语句 <过程名 过程名> 实在参数表) Call <过程名> (实在参数表) • 实参是传送给被调用的Sub过程的变量、常 实参是传送给被调用的Sub过程的变量、 Sub过程的变量 数或表达式; 数或表达式; • 它的个数、类型和顺序,应与被调过程的形 它的个数、类型和顺序, 参相配; 参相配; • 有多个参数时,用逗号隔开; 有多个参数时,用逗号隔开; • 无参数时,括号可省 无参数时,
盐城工学院
Visual Basic 程序设计
7.1 Sub过程 过程
7.1.1 事件过程 –事件过程是为窗体或控件编写的代码 事件过程是为窗体或控件编写的代码 –由VB中的事件调用而执行 由VB中的事件调用而执行 –保存在窗体模块中 保存在窗体模块中 –分为窗体事件过程和控件事件过程 分为窗体事件过程 分为窗体事件过程和
盐城工学院
Visual Basic 程序设计
7.3 .2过程调用 过程调用
直接用过程名 实参1 [,实参2 过程名 [ 实参1 [,实参2 . . . ] ] • 不需要关键字Call 不需要关键字Call • 实参表不需要加括号

VB实验11 Sub过程

VB实验11 Sub过程

下一页
退 出
第4 页 Visual Basic程序设计实验指导
二、预备知识
目的和要求 预备知识
上一页
下一页
退 出
定义Sub过程的一般形式如下: [Private | Public] [Static] Sub <过程名 >([<形式参数列表>]) [过程级变量和常量声明] 语句块 [Exit Sub] 语句块 End Sub
第8 页 Visual Basic程序设计实验指导
二、预备知识
目的和要求 预备知识
上一页
下一页
退 出
通常情况下(指没有可选参数的情况下),实 参与形参的个数必须相等,实参与形参的数据传 递是按位置传递的,而不是按名字传递的,即第1 个实参传递给第 1个形参,第 2 个实参传递给第 2 个形参,……。 按数值方式传递的形参,其对应的实参的数据 类型只要与形参相匹配即可,而按地址方式传递 的形参,其对应的实参变量的数据类型必须与形 参相同。
下一页
退 出
【要求】 ( 1 )通过文本框 Text1 输入一个含有数字的 字符串,通过文本框Text2输出结果。 ( 2 )程序运行时, Text1 中有初始字符串: 31A9R100YRW12.7ds6。 ( 3 )单击“求数字和”按钮,分离出其中的 数字并按指定格式在 Text2 中显示数字和;单击 “清除”按钮,将清除两个文本框中的内容,并 将焦点置于 Text1 中;单击“退出”按钮,结束 程序的运行。
第25页 Visual Basic程序设计实验指导
实验11-4
目的和要求 预备知识
上一页
下一页
退 出
【题目】 输出最长单词。 在一个文本框中 输入一串单词 (单词之间用空 格隔开),在另 一个文本框中输 出所有的最长单 词,如图11-4所 示。

Sub 过程

Sub 过程
Sub 过程
回顾:sub过程可以分为哪两种?各自有什 么特点? 1.窗体F1的装载事件过程名为: A、form_load B. F1_load 2. name为C1,caption为command1的按 钮的单击事件过程的过程名为: A、command1_click B、C1_click C. Command_click
区别:1、sub过程的过程名不兼作存放结 果的变量,没有类型。 2、function过程必须返回一个函数值,而 sub过程可以不返回值,也可以返回多个值 当sub过程需返回值时,需通过参数返回。 3、function过程调用时相当于一个函数, 而sub调用时需使用call 语句
静态过程
回顾:什么是静态变量? 当过程结束时时,加上了static关键字,则此 过程为静态过程,此时,过程中定义的局 部变量全部为静态变量。
参数传递
1、形参与实参
通用sub过程的定义和调用。 练习: 1、通过工具菜单创建一个welcome, 它能根据给定参数n,输出n遍“欢迎使 用VB” 2、在窗体的单击事件中调用welcome 过程,使其输出5遍.
两个参数的welcome. 根据参数n%和x$, 来确定输出次数和欢迎词。 分析:参数有两个,n用来指定输出次数, x用来指定输出内容。 则过程的作用为: 输出n次x$.
过程的调用: 在form_click中输出3次“ 欢迎新同学”
调用语句(主程序中) call welcome( 3, “欢迎新同学”) 调用时将实参传给形参。

Sub welcome ( n% , x$ ) For i=1 to n Print x Next I End sub
Sub过程的两种调用语句: 1、用call并加括号 使用call关键字调用过程,并在过程名 后将参数用括号括起来 例: call welcome( 5) 2、省call 也省括号 直接写过程名,空格后写参数,不加括 号。 例: welcome 3,” 欢迎新同学“

跟烟花入门VBA之9:认识Sub过程

跟烟花入门VBA之9:认识Sub过程

跟烟花入门VBA之9:认识Sub过程1.什么是Sub过程呢?Sub过程是一系列由Sub 和 End Sub 语句所包含起来的 Visual Basic 语句,它们会执行动作却不能返回一个值。

Sub过程还可以传递参数,参数可以为常量,变量,或者表达式等如果一个 Sub 过程没有参数,则它的 Sub 语句必须包含一个空的圆括号。

2.定义过程:Sub语句Sub 过程名(参数列表)语句1语句2Exit sub语句..End sub所有的可执行代码都必须属于某个过程。

不能在Sub过程中嵌套定义别的Sub 过程。

例如,下面的嵌套定义就是错误的。

Sub Hello()Sub Hello1()End subEnd sub正确的用法Sub Hello()End subSub Hello1()End sub过程名就是一个过程的名字,在VB中,命名需遵守以下规则:A.第一个字符必须使用英文字母;B.不能在名称中使用空格,名点,惊吧号,或者@,&,$,#等字符C.名称长度不能超过255个字符(一般太长不建议使用,难得记难得输入)D.名称不能与VB本身的FUNCTION过程,语句以及方法的名称相同E.不能在范围的相同层次中使用重复的名称(比如不能在同一过程中声明两个名称为name的变量)另外,Visual Basic 不区分大小写,但它会在名称被声明的语句处保留大写(代码中变量的大小写会自动与声明时相同)Exit Sub 语句使执行立即从一个 Sub 过程中退出。

在 Sub 过程的任何位置都可以有 Exit Sub 语句。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

局部内存分配
一般来讲在运行程序时VB会为全局变量分配内存,而局部变量 在过程开始时为变量分配内存,过程结束时会清除这些变量 而收回内存。当再次调用该过程时重新建立这些变量。 当过程结束时如果需要保存在局部变量中的数据,则需要把该变 量声明为全局变量或模块级变量。如果声明的变量只在一个 过程中使用则使用static语句,该语句如下: static 变量表 变量表格式如下: 变量 [( )] [as 类型][,变量[( )][as 类型]]…… 注意:static语句只能在事件过程、sub过程、function过程中, 过程中的static变量只在本过程中可见,本过程结束后变量的 值与模块级变量一样其值可以保留。
参数传递
形参:在sub、function过程定义中出现的变量名。 形参 实参:在调用sub、function过程中传送给sub、function过程的常数、 实参 变量、表达式或数组。 传送方式: 传送方式:按位置传送和指名传送 按位置传送:是大多数语言处理子程序调用时使用的方式,当使用这 种方式时实际参数的次序必须和形式参数的次序匹配,即位置次序 必须一致。 如下例子: 过程定义:sub test_sub(p1 as interger,p2 as single,p3 as string) 过程调用:call test_sub( a%, b!, “test”) 在传送实参时形参表与实参表中对应变量的名字不必相同,但是包含 的个数必须相同,同时实参与相应参数的类型必须相同。
对象参数
在VB中允许对象(窗体或控件)作为通用过程的 参数。格式为: sub 过程名(形参表) 语句块 [exit sub] …… end sub 注意:形参表中形参的类型通常为control或form。 对象只能通过传地址方式传送,不在参数前加 关键字byval
对象参数
注意:在使用控件作为参数时必须考虑到作为实参的控件是否具有通 用过程中所列的控件的属性。 在vb中提供了一个typeof语句,格式如下: [if | elseif ] typeof 控件名称 is 控件类型 Typeof语句放在通用工程中,控件名称 指的是控件参数(形参)的名 字,即as control前面的参数。控件类型是代表各种不同控件的关 键字,这些关键字是: checkbox(复选框) frame(框架) combobox(组合框) hscrollbar(水平滚动条) commandbutton(命令按钮) label(标签) listbox(列表框) dirlistbox(目录列表框) drivelistbox(驱动器列表框) menu(菜单) filelistbox(文件列表框) textbox(文本框)
SUB过程
说明: 1、sub过程以sub开始,以end sub结束,中间的描述过程操作的语句 块称为过程体过子程序体。语句中的参数含义如下: Static 指定过程中的局部变量在内存中的默认存储方式。如果使用 static语句则每次调用的局部变量值保持不变;省略static则默认为 自动的,每次调用变量时局部变量被初始化为0或空字符串。 Private 表示sub过程为私有过程,只能被本模块中的其他过程访问, 不能被其他模块中的过程访问。 Public表示sub过程为公有过程,可以在程序的任何地方调用它。一 般在标准模块中用public定义。如果在其他窗体模块中使用,则应 加上窗体名作为前缀。 过程名 不超过255个字符的变量名,在同一个模块中同一个变量名 不能既作sub过程名又做function过程名。
传值
4、用function过程可以通过过程名返回值,只能返回一个值,sub过 程可以通过参数返回多个值,如果通过sub过程返回值时相应的参 数要用传地址方式。
数组参数的传送பைடு நூலகம்
在VB中允许把数组作为实参传送到过程中。例如: sub S(a(),b()) …… end sub 在上面语句中两个数组作为形参,需要在数组名后面加上一对括号, 以免与普通变量混淆。可以用下面语句调用: call S(a(),b()) 当用数组作为过程的参数时使用的是传地址方式,而不是传值方式。 注意事项: 1、为了把一个数组的全部元素传送给一个过程,应将数组名分别放入 实参表和形参表中,并略去数组的上下界,但是括号不能省略。 例子:代码见数组传送.vbp
传送记录
记录是用户定义的类型,传送记录实际上是传送记录的变量。 一般步骤如下: 1、定义记录类型,语法格式如下: type 记录名 成员名 as 类型[长度] …… end type 2、定义记录类型变量 3、调用过程,并把定义的记录变量传送到过程 4、调用过程时注意形参类型匹配 例子 自定义记录类型 代码见记录.vbp
通用过程与事件过程
事件过程是一种特殊的sub过程,它附加在窗体和控件上。一个控件 的事件过程由控件的实际名字、下划线和事件名组成。而窗体事件 过程由form、下划线和事件名组成。窗体的事件过程不能由用户任 意定义,而有系统指定。 事件过程的一般格式为: [private|public] sub 控件名_事件名(参数表) 语句组 end sub 通用过程可以放在标准模块和窗体模块中,而事件过程只能放在窗体 模块中。当过程名唯一时可以直接通过过程名调用,如果两个或两 个以上的标准模块中含有相同的名字时,则在调用时必须用模块名 限定。一般格式: 模块名.过程名(参数表)
引用
参数通过两种方式传送,即传地址和传值,传地址习惯上称为引用, 引用方式通过关键字byref实现。在定义通用过程中如果形参前有 关键字byref(通常省略),则该参数通过引用(传地址)方式传送。 当通过引用来传递实参时可以改变传送给过程的变量的值。
传值
传值就是通过值传送实际参数,即传送实参的值而不是传送他的地址。 此时系统把需要传送的变量复制到一个临时单元中,然后把该临时 单元的地址传送给被调用的通用地址。 在VB中传值方式通过关键字byval实现,即在定义通用过程中如果形 参前有关键字byval则该参数用传值方式,否则用引用方式传送。 例子,使用传值方式与传地址方式的规则: 1、对于整型、常整型或单精度参数,如果不希望过程修改实参的值 则应加上关键字byval,而为提高效率字符串和数组应通过地址传 送,用户定义的类型(记录)和控件只能通过地址传送。 2、对于其他类型:双精度、货币型和变体型数据可以用两种方式。 此类参数最好用传值方式。 3、如果没有把握一般用传值方式传送所有变量,在调试程序后再把 部分参数改为传地址以加快运行速度。
可变参数
可变参数过程通过paramarray命令来定义,一般 格式: sub 过程名( paramarray 数组名) 注:数组名只是一个形式参数,只有名字和括号, 没有上下界,数组类型默认为variant。 注意: 1、由于可变参数是variant类型,故其中的参数 可以是任何类型的。 2、可变数组中的数是连续的,不可以有空缺,否 则会无法进行计算。
第九章 过程
SUB过程
事件过程:当发生某个事件时对该事件做出相应的程序段。 通用过程:多个不同的事件过程可能需要使用同一段相同的程序代码, 因此把这一段程序代码独立出来作为一个过程。 通用过程分为两类:子过程(sub过程)、函数过程(function过程)
建立sub过程 过程 建立
1、定义sub过程 语句结构如下: [static][private][public] sub 过程名 [(参数列表)] 语句块 [exit sub] [语句块] End sub
参数传递
形式参数列表中各变量之间用逗号隔开,表中的变量可以是: 除定长子符串之外的合法变量名; 后面跟有左右括号的数组名。 实际参数表中的各项用逗号隔开,实参可以是: 常数、表达式、合法的变量名、后面跟有左右括号的数组名。 注意:必须把所需要的实参传送给过程,取代相应的形参,执行过程 的操作,实参与形参必须按位置次序传送。 指名传送:即显式地指出与形参结合的实参,把形参用“:=”与实参 连接起来。和位置传送不同,指名传送方式不受位置次序的限制。
Function过程
2、调用function过程返回一个值,因此可以 像内部函数一样在表达式中使用,由 function过程返回的值放在表达式中,并 通过“过程名=表达式”把它的值赋给 “过程名”。在function过程中省略“过 程名=表达式”,则该过程返回一个默认 值:数值函数返回0值,字符串函数过程 返回空字符串。 3、过程不能嵌套,因此不能在事件过程中 定义通用过程(包括sub过程和function过 程),只能在事件过程内调用通用过程。
数组参数的传送
2、如果只传递数组的某个元素,则需要数组名后的括号中写上指定元 素的下标。 3、用lbound与ubound函数来确定传送给过程的数组的大小。
参数传送注意事项
1、字符串和数值常数分别传送给字符串类型和数值类型的形参。 2、当传送数值常数时,如果实参表中的某个数值常数与function和 sub过程形参表相应的形参不一致,则把这个常数被强制变为相应 形参的类型。 3、当作为实参的数值表达式与形参类型不一致时,通常也强制变为 相应的类型。
建立sub过程
在标准模块中建立通用过程方法: 方法1、菜单“工程—添加模块”,在对话框中选择“新建”选项卡, 双击“模块”图标,打开模块代码窗口。 执行“工具—添加过程”,在对话框中输入过程名,并设置相应的 选项。单击确定返回代码输入框输入代码。 方法2、执行“工程—添加模块”,打开代码窗口,然后输入过程的 名字。例如:sub test( ),按回车后显示: sub test( ) end sub 在sub与end sub之间输入代码
调用sub过程
要执行一个过程,必须调用该过程。调用sub过程 的方法有两种: 把过程的名字放在call语句中; 把过程名作为一个语句来使用。 1、用call语句调用sub过程 格式:call 过程名[(实际参数)] 2、把过程名作为一个语句来使用 格式:过程名 实际参数 与第一种的区别在于省略了call ,去掉了实际参 数的括号。
相关文档
最新文档