共用方式為


Dim 陳述式

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

語法

Dim [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ] [ , [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]] . . 。

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

部分 描述
WithEvents 選用。 關鍵詞,指定 varname 是用來回應 ActiveX 物件所觸發之事件的物件變數WithEvents 只在 類模組中有效。 您可以使用WithEvents來宣告任意數量的個別變數,但無法使用WithEvents建立陣列。 您無法搭配WithEvents使用New
varname 此為必要動作。 變數的名稱;遵循標準變數命名慣例。
下標 選用。 陣列變數的維度;最多可以宣告 60 個多個維度。 下標自變數會使用下列語法:[ lowerTo ] upper [ , [ lowerTo ] upper ] . ..

若未在 下方明確陳述,則陣列的下限是由 OptionBase 語句所控制。 如果沒有 OptionBase 語句,則下限為零。
新增 選用。 啟用物件隱含建立的關鍵詞。 如果您在宣告物件變數時使用 New ,則會在第一次參考物件時建立物件的新實例,因此您不需要使用 Set 語句來指派對象參考。

New 關鍵詞不能用來宣告任何內部數據類型的變數或宣告相依對象的實例,而且不能與WithEvents搭配使用。
type 選用。 變數的數據類型;可能是目前不支援的 ByteBooleanIntegerLongCurrencySingleDoubleDecimal () 、 DateString (,適用於可變長度字符串) 、 固定長度 字元串 () 、 ObjectVariant使用者定義型別對象類型。 針對您宣告的每個變數使用個別的 As類型子句。

註解

模組層上以 Dim 宣告的變數可供模組內的所有程式使用。 在 程式層級,變數只能在程式內使用。

使用模組或程式層級的 Dim 語句來宣告變數的數據類型。 例如,下列語句會將變數宣告為 Integer

Dim NumberOfEmployees As Integer 

也請使用 Dim 語句來宣告變數的物件類型。 下列命令會宣告工作表新實例的變數。

Dim X As New Worksheet 

如果在宣告物件變數時未使用 New 關鍵詞,則必須先使用 Set 語句將參照物件的變數指派給現有的物件,才能使用它。 在指派物件之前,宣告的物件變數具有特殊值 Nothing,表示它不會參考物件的任何特定實例。

您也可以使用 Dim 語句搭配空括弧來宣告動態數位。 宣告動態陣列之後,請在程式內使用 ReDim 語句來定義陣列中的維度和元素數目。 如果您嘗試重新宣告在 PrivatePublicDim 語句中明確指定大小的數位變數維度,則會發生錯誤。

如果您未指定數據類型或物件類型,而且模組中沒有 Def_type_ 語句,則變數預設為 Variant 。 當變數初始化時,數值變數會初始化為0、變數長度字串會初始化為零長度字串 (“”) ,而固定長度字元串則會填入零。 Variant 變數會初始化為 空白。 用戶定義型別變數的每個項目都會初始化,就像是個別的變數一樣。

注意事項

當您在程式中使用 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 支援與意見反應