Public 陳述式

用於 模組層級 ,以宣告公 用變數 並配置儲存空間。

語法

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

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

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

[ lowerTo ] upper [ , [ lowerTo ] upper ] . . . .

若未在 下方明確陳述,則陣列的下限是由 Option Base 語句所控制。 如果沒有 Option Base 語句,則下限為零。
新增 選用。 啟用物件隱含建立的關鍵字。 如果您在宣告物件變數時使用 New ,則會在第一次參考物件時建立物件的新實例,因此您不需要使用 Set 語句來指派物件參考。 New關鍵字不能用來宣告任何內部資料類型的變數。 它也無法用來宣告相依物件的實例,也無法與 WithEvents搭配使用。
type 選用。 變數的資料類型;可能是目前不支援的 ByteBooleanIntegerLongCurrencySingleDoubleDecimal () 、 DateString (,適用于可變長度的字串) 、 固定長度 字串) 的字串長度 (、 ObjectVariant使用者定義型別物件類型。 針對所定義的每個變數使用個別的 As類型 子句。

註解

除非Option Private Module有效,否則所有應用程式中所有模組中的所有程式都可以使用使用Public語句宣告的變數;在此情況下,變數只會在它們所在的專案內為公用。

Public語句無法在類別模組中用來宣告固定長度字串變數。

使用 Public 語句來宣告變數的資料類型。 例如,下列語句會將變數宣告為 整數

Public NumberOfEmployees As Integer 

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

Public X As New Worksheet 

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

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

如果您未指定資料類型或物件類型,而且模組中沒有 Deftype 語 句,則變數預設為 Variant

當變數初始化時,數值變數會初始化為 0、變數長度字串會初始化為零長度字串 (「」) ,而固定長度字串則會填入零。 Variant 變數會初始化為 空白。 使用者定義型別變數的每個專案都會初始化,就像是個別的變數一樣。

範例

本範例會使用標準模組 (一般區段) 模組層級的 Public 語句,明確地將變數宣告為公用;也就是說,除非 Option Private Module 生效,否則所有應用程式中所有模組中的所有程式都可以使用這些程式。

Public Number As Integer ' Public Integer variable. 
Public NameArray(1 To 5) As String ' Public array variable. 
' Multiple declarations, two Variants and one Integer, all Public. 
Public MyVar, YourVar, ThisVar As Integer 

另請參閱

支援和意見反應

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