共用方式為


Static 陳述式

用於 程序層級 宣告 變數 及分配儲存空間。 使用 Static 陳述式宣告的變數只要程式碼執行時會保留其值。

語法

靜態變體名稱 [ ( [ 下標 ] ) ] [ 作為 [ ] 類型 ], [ 變體名 [ ( [ 下標 ] ) ] [ 作為 [ ] 類型 ] ] ......

靜態語句語法包含以下部分:

部分 描述
varname 此為必要動作。 變數名稱;遵循標準變數命名規則。
下標 選用。 陣列變數的維度;最多可宣告 60 個多維度。 下標參數使用以下語法:

[ 降低 ]上[, [] 上層......。

lower 未明確說明時,陣列的下界由 Option Base 陳述式控制。 若不存在 選項基礎 陳述,下界為零。
新增 選用。 關鍵字是能隱含建立物件的。 如果你在宣告物件變數時使用 New,物件的第一個參考就會建立一個新的實例,所以你不必使用 Set 陳述來指派物件參考。 關鍵字無法用來宣告任何內在資料型態的變數,也無法用來宣告相依物件的實例。
type 選用。 變數的資料型態;可為位元組布林、整數貨幣雙、十進 ((目前不支援) )、日期字串 ((可變長度字串) )、字長度 ((固定長度字串) )、物件變體使用者定義型別物件型別。 每個定義的變數都用獨立 的 As類型 子句。

註解

模組程式碼執行後,使用 Static 陳述式宣告的變數會保留其值,直到模組被重置或重新啟動。 在 類別模組中,使用 Static 陳述式宣告的變數會在每個類別實例中保留其值,直到該實例被銷毀為止。 在 形式模組中,靜態變數的值會保留直到表單封閉。

在非靜態程序中使用 靜態 陳述,明確宣告只在程序內可見,但其壽命與定義該程序所屬模組相同的變數。

在程序中使用 Static 陳述句來宣告變數的資料型別,該變數在程序呼叫間保持其值。 例如,以下陳述宣告一個固定大小的整數陣列:

Static EmployeeNumber(200) As Integer 

以下陳述為新工作表實例宣告變數:

Static X As New Worksheet 

如果宣告物件變數時未使用 關鍵字,則必須先透過 Set 陳述式指派該物件的現有物件,才能使用。 在被指派物件之前,宣告的物件變數具有特殊值 Nothing,表示它不指向任何特定的物件實例。 當你在宣告中使用 New 關鍵字時,物件的實例會在第一次引用物件時建立。

如果你沒有指定資料型別或物件型別,且模組中沒有 Def類型 語句,變數預設為 Variant

注意事項

靜態語句與靜態關鍵字相似,但用於不同的效果。 如果你像) 一樣Static Sub CountSales ()使用 Static 關鍵字 (宣告一個程序,程序中所有本地變數的儲存空間會被分配一次,變數的值會保留到整個程式執行期間。 對於非靜態程序,每次呼叫時會分配變數的儲存空間,退出程序時釋放。 Static 陳述式用於宣告非靜態程序中的特定變數,以保持其值直到程式執行期間。

當變數初始化時,數值變數會被初始化為 0,可變長度的字串會初始化為零長度的字串 (“”) ,而固定長度的字串則被填入零。 變體 變數會初始化為 Empty。 使用者定義型態變數的每個元素都被初始化為獨立變數。

注意事項

當你在程序中使用 靜態 語句時,請將它們與其他宣告式語句(如 Dim)一起放在程序開頭。

範例

此範例使用 Static 陳述式,在模組程式碼執行期間保留變數值。

' Function definition. 
Function KeepTotal(Number) 
    ' Only the variable Accumulate preserves its value between calls. 
    Static Accumulate 
    Accumulate = Accumulate + Number 
    KeepTotal = Accumulate 
End Function 
 
' Static function definition. 
Static Function MyFunction(Arg1, Arg2, Arg3) 
    ' All local variables preserve value between function calls. 
    Accumulate = Arg1 + Arg2 + Arg3 
    Half = Accumulate / 2 
    MyFunction = Half 
End Function

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應