共用方式為


Dim 陳述式

宣告 變數 並分配儲存空間。

語法

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

Dim 語句語法包含以下部分:

部分 描述
WithEvents 選用。 關鍵字指定varname 是一個物件變數,用來回應由 ActiveX 物件觸發的事件。 WithEvents 僅適用於 類別模組。 你可以用 WithEvents 宣告任意多的個別變數,但無法用 WithEvents 建立陣列。 你不能用 WithEvents 來使用新。
varname 此為必要動作。 變數名稱;遵循標準變數命名規則。
下標 選用。 陣列變數的維度;最多可宣告 60 個多維度。 下標論證使用以下語法:[ To ] [ , [ To ] ] ......

lower 未明確說明時,陣列的下界由 Option Base 陳述式控制。 若不存在 選項基礎 陳述,下界為零。
新增 選用。 關鍵字是能隱含建立物件的。 如果你在宣告物件變數時使用 New ,物件的第一個參考就會建立一個新的實例,所以你不必使用 Set 陳述來指派物件參考。

關鍵字無法用來宣告任何內在資料型態的變數或宣告相依物件的實例,也無法與 WithEvents 一起使用。
type 選用。 變數的資料型態;可為位元組布林、整數貨幣雙、十進 ((目前不支援) )、日期字串 ((可變長度字串) )、字長度 ((固定長度字串) )、物件變體使用者定義型別物件型別。 為每個變數使用獨立的 As類型 子句。

註解

模組層級以 Dim 宣告的變數,模組內所有程序皆可用。程序層級,變數僅能在程序內使用。

在模組或程序層級使用 Dim 陳述式來宣告變數的資料型態。 例如,以下陳述宣告一個變數為 整數

Dim NumberOfEmployees As Integer 

也可以用 Dim 陳述式來宣告變數的物件類型。 以下宣告一個工作表新實例的變數。

Dim X As New Worksheet 

若宣告物件變數時未使用 關鍵字,則該物件的變數必須先透過 Set 陳述式被指派為現有物件,才能使用。 在被指派物件之前,宣告的物件變數具有特殊值 Nothing,表示它不指向任何特定的物件實例。

你也可以用空括號的 Dim 陳述來宣告動態陣列。 宣告動態陣列後,在程序中使用 ReDim 語句定義陣列中的維度與元素數量。 如果你嘗試重新宣告一個陣列變數的維度,而該變數的大小在 PrivatePublicDim 語句中明確指定,就會發生錯誤。

如果你沒有指定資料型別或物件型別,且模組中沒有 Def_type_ 語句,變數預設為 Variant 。 當變數初始化時,數值變數會被初始化為 0,可變長度的字串會初始化為零長度的字串 (“”) ,而固定長度的字串則被填入零。 變體 變數會初始化為 Empty。 使用者定義型態變數的每個元素都被初始化為獨立變數。

注意事項

當你在程序中使用 Dim 陳述時,通常會把 Dim 陳述放在程序的開頭。

範例

此範例展示了用於宣告變數的 Dim 陳述式。 它也顯示了用來宣告陣列的 Dim 陳述句。 陣列下標的預設下限為 0,且可透過 Option Base 語句在模組層級覆蓋。

' AnyValue and MyValue are declared as Variant by default with values 
' set to Empty. 
Dim AnyValue, MyValue 
 
' Explicitly declare a variable of type Integer. 
Dim Number As Integer 
 
' Multiple declarations on a single line. AnotherVar is of type Variant 
' because its type is omitted. 
Dim AnotherVar, Choice As Boolean, BirthDate As Date 
 
' DayArray is an array of Variants with 51 elements indexed, from 
' 0 thru 50, assuming Option Base is set to 0 (default) for 
' the current module. 
Dim DayArray(50) 
 
' Matrix is a two-dimensional array of integers. 
Dim Matrix(3, 4)As Integer 
 
' MyMatrix is a three-dimensional array of doubles with explicit 
' bounds. 
Dim MyMatrix(1 To 5, 4 To 9, 3 To 5)As Double 
 
' BirthDay is an array of dates with indexes from 1 to 10. 
Dim BirthDay(1 To 10)As Date 
 
' MyArray is a dynamic array of variants. 
Dim MyArray()

另請參閱

支援和意見反應

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