【正文】
Print X, Y, Z End Sub 單擊 C1后運行結(jié)果 : 1 2 3 2 3 5 第九章 過 程 50 例 : Sub S() Static Z As Integer Z = Z + 2 Print Z End Sub Private Sub Command1_Click() Dim Z As Integer Z = Z + 2 Call S Print Z End Sub 第一次單擊 C1結(jié)果 : 2 2 第二次單擊 C1結(jié)果 : 4 2 第三次單擊 C1結(jié)果 : 6 2 第九章 過 程 51 2. 模塊級變量 ? 聲明 在模塊的通用聲明段中用以下方法聲明的變量。 Private 39。 在模塊運行時被初始化 Dim 39。 在模塊運行時被初始化 ? 作用范圍 在該模塊的所有過程中都起作用 其他模塊不能訪問這些變量 3. 全局變量 ? 聲明 在模塊的通用聲明段中用以下方法聲明的變量 Public 39。 應(yīng)用程序運行時被初始化 ? 作用范圍 : 應(yīng)用程序的所有過程 第九章 過 程 52 例 : Dim Z As Integer Sub S() Z = Z + 2 Print Z End Sub Private Sub C1_Click() Z = Z + 2 Call S Print Z End Sub 第一次單擊 C1結(jié)果 : 4 4 第二次單擊 C1結(jié)果 : 8 8 第三次單擊 C1結(jié)果 : 12 12 第九章 過 程 53 例 : Dim Z As Integer Sub S() Dim Z Z = Z + 2 Print z End Sub Private Sub C1_Click() Z = Z + 2 Call S Print Z End Sub 第一次單擊 C1結(jié)果 : 2 2 第二次單擊 C1結(jié)果 : 2 4 第三次單擊 C1結(jié)果 : 2 6 第九章 過 程 54 【例 914】 P160例 921 標準模塊 : 39。M1存放 N的立方值, M2存放 N的階乘值 Public M1 As Integer, M2 As Integer 39。定義求階乘函數(shù) F(N) Public Function F(N) As Integer F1 = 1 For I = 1 To N F1 = F1 * I Next I F=F1 End Function I: 局部變量 F1: 局部變量 N: 形式參數(shù) F: 公共函數(shù) M M2: 全局變量 第九章 過 程 55 Form1模塊 : Dim N As Integer Private Sub C1_Click() N = Val() M1 = N * N * N = M1 End Sub Private Sub C2_Click() M2 = F(N) = M2 End Sub Private Sub C3_Click() End Sub N: 模塊級變量 實際參數(shù) F: 公共函數(shù) M M2: 全局變量 第九章 過 程 56 Private Sub C1_Click() = M1 End Sub Private Sub C2_Click() = M2 End Sub Private Sub C3_Click() If M1 O Then = Format(M2 / M1, ) Else MsgBox 被除數(shù)為零,請重輸 End If End Sub Private Sub C4_Click() Unload Me End Sub M M2: 全局變量 第九章 過 程 57 變量的生存期 靜態(tài)變量 : 在應(yīng)用程序執(zhí)行期間保留不變 動態(tài)變量 : 在所在的模塊 (過程 )運行時被初始化 Static Sub SS1() 39。 局部變量 I,S為靜態(tài)變量 For I = 1 To 10 S = S + I Next I Print S End Sub Private Sub Command1_Click() Call SS1 End Sub 第九章 過 程 58 本章小結(jié) 1. 函數(shù)過程的定義和調(diào)用 定義 : [Public | Private ] [Static] Function 函數(shù)名 [(形參表 )] [As 類型 ] …… [函數(shù)名 =表達式 ] …… End Function 形參表 :變量、數(shù)組名 () 調(diào)用 : 函數(shù)名 (實參表 )出現(xiàn)在表達式可以出現(xiàn)的位置 第九章 過 程 59 2. Sub過程的定義和調(diào)用 定義 : [Private | Public ] [Static] Sub 過程名 ([形參表]) …… End Sub 調(diào)用 : (1)Call 過程名 ([實參表 ]) (2)過程名 [實參表 ] 實參表 : 常量、變量、表達式 參數(shù)應(yīng)與定義時一致 (個數(shù)、類型、次序 ) 注意 : 實參與形參的類型聲明位置 注意 : Sub過程調(diào)用與函數(shù)過程調(diào)用的區(qū)別 第九章 過 程 60 3. 過程之間的參數(shù)傳遞 按值傳送、按地址傳送 CALL S (實際參數(shù) ) SUB S(形式參數(shù) ) 按值傳送 : 實際參數(shù)為常數(shù)、表達式、 ByVal 變量 按地址傳送 : 實際參數(shù)變量、 ByRef 變量、數(shù)組名 () 4. 過程的作用域 模塊級過程 全局級過程 窗體模塊 : .frm 標準模塊 : .bas 按值傳送 按地址傳送 第九章 過 程 61 局部變量 模塊級變量 全局變量 6. 變量的生存期 動態(tài)變量 靜態(tài)變量