如果不顯式指定 lower,則陣列的下界由 Option Base 語句控制。如果沒有 Option Base 語句則下界為 0。
New 可選的。用它可以隱式地建立物件的關鍵字。如果使用 New 宣告物件變數,則在第一次引用該變數時建立該物件的新例項,因此不必使用 Set 語句來對該物件引用賦值。New 關鍵字不能用來宣告任何內部資料型別的變數以及從屬物件的例項,也不能與 WithEvents 一起使用。
type 可選的。變數的資料型別;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支援)、Date、 String(對變長的字串)、String * length(對定長的字串)、Object或 Variant,使用者定義型別,或物件型別。所宣告的每個變數都要有一個單獨的 As type 子句。
說明
Public 語句宣告的變數在所有應用程式的所有沒有使用 Option Private Module 的模組的任何過程中都是可用的;若該模組使用了 Option Private Module,則該變數只是在其所屬工程中是公用的。
小心 不能在類模組中使用 Public 語句來宣告一個定長的字串變數。
使用 Public 語句可以宣告變數的資料型別。例如,下面的語句聲明瞭一個 Integer 型別的變數。
Public NumberOfEmployees As Integer
也可以使用 Public 語句來宣告變數的物件型別。下面的語句為工作表的新例項聲明瞭一個變數。
Public X As New Worksheet
如果在定義物件變數時沒有使用 New 關鍵字,則在使用該變數之前,必須使用 Set 語句將一個已有的物件賦給這個引用物件的變數。在被賦值之前,所宣告的這個物件變數有一個特定值 Nothing,這個值表示該變數沒有指向任何物件的例項。
可以用帶空圓括號的 Public 語句來宣告動態陣列。在聲明瞭動態陣列之後,可以在過程內用 ReDim 語句來定義該陣列的維數和元素。如果試圖在 Private、Public 或 Dim 語句中重定義一個已被顯式定義了大小的陣列的維數,就會發生錯誤。
在模組級別中使用,用於宣告公用變數和分配儲存空間。
語法
Public [WithEvents] varname[([subscripts])] [As [New] type] [,[WithEvents] varname[([subscripts])] [As [New] type]] . . .
Public 語句的語法包含下面部分:
部分 描述
WithEvents 可選的。關鍵字,說明 varname 是用來響應由 ActiveX 物件觸發的事件的物件變數。只有在類模組中才是合法的。使用 WithEvents,可以定義任意個所需的單個變數,但不能用 WithEvents 建立陣列。New 和 WithEvents 不能一起使用。
varname 必需的。變數的名稱;遵循標準的變數命名約定。
subscripts 可選的。陣列變數的維數;最多可以定義 60 維的多維陣列。subscripts 引數使用下面的語法: [lower To] upper [,[lower To] upper] . . .
如果不顯式指定 lower,則陣列的下界由 Option Base 語句控制。如果沒有 Option Base 語句則下界為 0。
New 可選的。用它可以隱式地建立物件的關鍵字。如果使用 New 宣告物件變數,則在第一次引用該變數時建立該物件的新例項,因此不必使用 Set 語句來對該物件引用賦值。New 關鍵字不能用來宣告任何內部資料型別的變數以及從屬物件的例項,也不能與 WithEvents 一起使用。
type 可選的。變數的資料型別;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支援)、Date、 String(對變長的字串)、String * length(對定長的字串)、Object或 Variant,使用者定義型別,或物件型別。所宣告的每個變數都要有一個單獨的 As type 子句。
說明
Public 語句宣告的變數在所有應用程式的所有沒有使用 Option Private Module 的模組的任何過程中都是可用的;若該模組使用了 Option Private Module,則該變數只是在其所屬工程中是公用的。
小心 不能在類模組中使用 Public 語句來宣告一個定長的字串變數。
使用 Public 語句可以宣告變數的資料型別。例如,下面的語句聲明瞭一個 Integer 型別的變數。
Public NumberOfEmployees As Integer
也可以使用 Public 語句來宣告變數的物件型別。下面的語句為工作表的新例項聲明瞭一個變數。
Public X As New Worksheet
如果在定義物件變數時沒有使用 New 關鍵字,則在使用該變數之前,必須使用 Set 語句將一個已有的物件賦給這個引用物件的變數。在被賦值之前,所宣告的這個物件變數有一個特定值 Nothing,這個值表示該變數沒有指向任何物件的例項。
可以用帶空圓括號的 Public 語句來宣告動態陣列。在聲明瞭動態陣列之後,可以在過程內用 ReDim 語句來定義該陣列的維數和元素。如果試圖在 Private、Public 或 Dim 語句中重定義一個已被顯式定義了大小的陣列的維數,就會發生錯誤。
如果不指定資料型別或物件型別,且在模組中沒有使用 Deftype 語句,則按預設情況該變數為 Variant 型別。
當初始化變數時,數值變數被初始化為 0,變長的字串被初始化為一個零長度的字串 (""),而定長的字串則用 0 填充。Variant 變數被初始化為 Empty。使用者自定義型別的變數的每個元素都作為各自獨立的變數進行初始化。