📄 6.htm
字号:
<p><strong>方法二: </strong><span lang=EN-US><br>
<br>
1) 在代码编辑器窗口的对象中选择“通用”,在文本编辑区输入 Private Sub 过程名 <br>
<br>
2) 按回车键,即可创建一个 Sub 过程样板 <br>
<br>
3) 在新创建的过程中输入内容 </span></p>
<p><strong><span lang=EN-US>3. Sub 子过程的调用 </span></strong></p>
<p><strong>(<span lang=EN-US>1) 用 Call 语句调用 Sub 过程 </span></strong></p>
<p>语法: <strong><span lang=EN-US>Call </span></strong>过程名 <strong>( </strong>实在参数表
<strong>) </strong><span lang=EN-US><br>
<br>
实在参数的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。 <br>
<br>
例:利用过程编写求三角形面积的程序 </span></p>
<table border=0 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
mso-padding-alt:0cm 0cm 0cm 0cm'>
<tr>
<td width=339 valign=top style='width:254.25pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><br>
<img width=320 height=151 id="_x0000_i1025" src=image602.jpg></span></p>
</td>
</tr>
</table>
<p class=MsoNormal><span lang=EN-US style='display:none;mso-hide:all'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
<table border=0 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
mso-padding-alt:0cm 0cm 0cm 0cm'>
<tr>
<td width=469 valign=top style='width:351.75pt;padding:0cm 0cm 0cm 0cm'>
<p align=center style='text-align:center'><span lang=EN-US><img width=467
height=223 id="_x0000_i1026" src=image603.gif></span></p>
</td>
</tr>
</table>
<p><strong>(<span lang=EN-US>2) 把过程名作为一个语句来用 </span></strong></p>
<p>语法: 过程名<span lang=EN-US> [ 实参 1[ ,实参 2 …… ]] </span></p>
<p>它与(<span lang=EN-US> 1 )的不同点是: 去掉了关键字和实参列表的括号 <br>
<br>
如上例中可以改成: <strong>area a,b,c,w </strong></span></p>
<p align=center style='text-align:center'><strong><span lang=EN-US>6.2 函数过程(
Function )的定义与调用 </span></strong></p>
<p><strong><span lang=EN-US>1. 函数过程的定义 </span></strong></p>
<p><strong>有两种方法: </strong></p>
<p>(<span lang=EN-US>1) 在代码窗口中,利用“工具”菜单下的“添加过程”命令,插入一个函数过程模板来定义 <br>
<br>
(2) 在代码窗口中,把插入点放在所有现有过程之外,直接输入函数来定义 <br>
<br>
[ <strong>Private | Public ] [ Static ] Function </strong>函数名 ( [ 参数列表 ] ) [
<strong>As </strong>数据类型 ] <br>
<br>
[ 局部变量和常数声明 ] ‘用 Dim 或 Static 声明 <br>
<br>
[ 语句块 ] <br>
<br>
[ 函数名 = 表达式 ] <br>
<br>
[ <strong>Exit Function </strong>] <br>
<br>
语句块 <br>
<br>
[ 函数名 = 表达式 ] <br>
<b><br>
<strong>End Function </strong></b></span></p>
<p><strong><span lang=EN-US>2. 注意事项 </span></strong></p>
<p>(<span lang=EN-US>1) 函数名的命名规则与变量命名规则相同;函数过程必须由函数名返回一个值。 <br>
<br>
(2) 如果函数体内没有给函数名赋值,则返回对应类型的缺省值,数值型返回 0 ,字符型返回空字符串。 <br>
<br>
(3) 函数过程内部不得再定义 Sub 过程或 Function 过程。 <br>
例:编写一个计算 N !的函数过程 </span></p>
<table border=0 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
mso-padding-alt:0cm 0cm 0cm 0cm'>
<tr>
<td width=332 valign=top style='width:249.0pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><img width=320 height=154 id="_x0000_i1027"
src=image606.jpg></span></p>
</td>
</tr>
<tr>
<td valign=top style='padding:0cm 0cm 0cm 0cm'>
<p class=MsoNormal><span lang=EN-US><img width=363 height=335
id="_x0000_i1028" src=image604.gif></span></p>
</td>
</tr>
</table>
<p><strong><span lang=EN-US>3. Function 过程的调用 </span></strong></p>
<p>调用<span lang=EN-US> Function 过程与调用 VB 内部函数的方法一样,即在表达式中写出它的名称和相应的实在参数。 <br>
<br>
语法: 过程名 <strong>( </strong>[ 实参列表 ] <strong>) </strong><b><br>
</b><br>
注意:( 1 )必须给参数加上括号,即使没有参数也不可省略括号; <br>
<br>
( 2 ) VB 中也允许象调用 Sub 过程一样来调用 Function ,但这样就没有返回值。 </span></p>
<p><strong><span lang=EN-US>4. 调用其他模块中的过程 </span></strong></p>
<p><strong>(<span lang=EN-US>1) 调用窗体中的过程 </span></strong><span lang=EN-US><br>
<br>
从窗体模块的外部调用窗体中的公有过程,必须用窗体的名字作为调用前缀。如: <br>
<b><br>
<strong>Call Form1. </strong></b>Examsub ( [ 实参表 ] ) </span></p>
<p><strong>(<span lang=EN-US>2) 调用标准模块中的过程 </span></strong><b><span lang=EN-US><br>
</span></b><span lang=EN-US><br>
如果在应用程序中,过程名是唯一的,则调用时不必加模块名。如果有同名的,则在同一模块内调用时可以不加模块名,而在其他模块中调用时必须加模块名。 </span></p>
<p><strong>(<span lang=EN-US>3) 类模块中的过程 </span></strong><b><span lang=EN-US><br>
<br>
</span></b>调用类模块的公有过程时,要求用指向该类某一实例的变量修饰过程,即首先要声明类的实例为对象变量,并以此变量作为过程名前缀修饰词,不可直接用类名作为前缀修饰词。
</p>
<p>如:在类模块<span lang=EN-US> Class1 中含有过程 clssub ,变量 Democlass 是类 Class1 的一个实例,则调用
clssub 的方法是: <br>
<br>
Dim <strong>Democlass </strong>AS New Class1 <br>
Call <strong>Democlass. </strong>clasub <br>
<b><br>
<strong>例: 函数过程 与 子过程 的异同,计算级数的部分和 </strong></b></span></p>
<p><strong> <span lang=EN-US>1 + x + x 2 /2! + …… + x n /n! + ……, |x n /n!|
<> </span></strong></p>
<table border=0 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
mso-padding-alt:0cm 0cm 0cm 0cm'>
<tr>
<td width=342 valign=top style='width:256.5pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><img width=316 height=455 id="_x0000_i1029"
src=image607.gif></span></p>
</td>
</tr>
<tr>
<td width=342 valign=top style='width:256.5pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><img width=350 height=186 id="_x0000_i1030"
src=image609.jpg></span></p>
</td>
</tr>
</table>
<p class=MsoNormal><span lang=EN-US><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
<p align=center style='text-align:center'><strong><span lang=EN-US>6.3 参数的传递 </span></strong></p>
<p><strong><span lang=EN-US>1. 形参与实参的概念 </span></strong></p>
<p><strong>形参 </strong>:指出现在<span lang=EN-US> Sub 和 Function 过程形参表中的变量名、数组名,过程被调用前,没有分配内存,其作用是说明自变量的类型和形态以及在过程中的角色。形参可以是:
</span></p>
<p> <span lang=EN-US>1) 除定长字符串变量之外的合法变量名; <br>
<br>
2) 后面跟()括号的数组名。 </span></p>
<p><strong>实参: </strong>是在调用<span lang=EN-US> Sub 和 Function 过程时,传送给相应过程的变量名、数组名、常数或表达式。在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但位置必须对应起来。
</span></p>
<p><strong>形参与实参的关系: </strong>形参如同公式中的符号,实参就是符号具体的值;调用过程:即实现形参与实参的结合,也就是把值代入公式进行计算。
</p>
<p><strong><span lang=EN-US>2. 按值传递参数(定义时加 ByVal ) </span></strong></p>
<p>按值传递参数( <span lang=EN-US>Passed By Value )时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变。
</span></p>
<p><strong><span lang=EN-US>3. 按地址传递参数(定义时没有修饰词或带关键字 ByRef ) </span></strong></p>
<p>按地址传递参数时,把实参变量的地址传送给被调用过程,形参和实参共用内存的同一地址。在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变。如果实参是一个常数或表达式,<span
lang=EN-US> VB 会按“传值”方式来处理。 </span></p>
<p><strong><span lang=EN-US>4. 数组参数 </span></strong></p>
<p><span lang=EN-US>VB 允许把数组作为形参出现在形参表中,语法: <strong>形参数组名() [ As 数据类型 ] </strong></span></p>
<p>形参数组只能按地址传递参数,对应的实参也必须是数组,且数据类型相同。调用过程时,把要传递的数组名放在实参表中,数组名后面不跟圆括号。在过程中不可以用<span
lang=EN-US> Dim 语句对形参数组进行声明,否则会产生“重复声明”的错误。但在使用动态数组时,可以用 ReDim 语句改变形参数组的维界,重新定义数组的大小。
</span></p>
<p><strong><span lang=EN-US>5. 对象参数 </span></strong></p>
<p> <span lang=EN-US>VB 中可以向过程传递对象,在形参表中,把形参变量的类型声明为“ Control ”,可以向过程传递控件;若声明为“
Form ”,则可向过程传递窗体。对象的传递只能按地址传递。 </span></p>
<table border=0 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
mso-padding-alt:0cm 0cm 0cm 0cm'>
<tr>
<td width=322 valign=top style='width:241.5pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><img width=320 height=144 id="_x0000_i1031"
src=image611.jpg></span></p>
</td>
</tr>
<tr>
<td width=322 valign=top style='width:241.5pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><img width=320 height=144 id="_x0000_i1032"
src=image612.gif></span></p>
</td>
</tr>
<tr>
<td width=322 valign=top style='width:241.5pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><img width=267 height=149 id="_x0000_i1033"
src=image613.gif></span></p>
</td>
</tr>
<tr>
<td width=322 valign=top style='width:241.5pt;padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US><img width=294 height=278 id="_x0000_i1034"
src=image614.gif></span></p>
</td>
</tr>
</table>
<p align=center style='text-align:center'><strong><span lang=EN-US>6.4 变量、过程的作用域
</span></strong></p>
<p><strong><span lang=EN-US>1. VB 应用程序的组成: </span></strong></p>
<p><strong><span lang=EN-US>2. 过程的作用域 </span></strong></p>
<table border=1 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
border:solid windowtext .5pt;mso-padding-alt:0cm 0cm 0cm 0cm'>
<tr>
<td width=108 rowspan=2 style='width:81.0pt;border:solid windowtext .5pt;
padding:0cm 0cm 0cm 0cm'>
<p><strong>作用范围 </strong></p>
</td>
<td width=192 colspan=2 valign=top style='width:144.0pt;border:solid windowtext .5pt;
padding:0cm 0cm 0cm 0cm'>
<p align=center style='text-align:center'>模块级 </p>
</td>
<td width=372 colspan=3 valign=top style='width:279.0pt;border:solid windowtext .5pt;
padding:0cm 0cm 0cm 0cm'>
<p align=center style='text-align:center'>全局级 </p>
</td>
</tr>
<tr>
<td width=98 valign=top style='width:73.5pt;border:solid windowtext .5pt;
padding:0cm 0cm 0cm 0cm'>
<p align=center style='text-align:center'>窗体 </p>
</td>
<td width=94 valign=top style='width:70.5pt;border:solid windowtext .5pt;
padding:0cm 0cm 0cm 0cm'>
<p align=center style='text-align:center'>标准模块 </p>
</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -