宣告變數
當宣告變數時,您通常會使用 Dim 陳述式。 可以將宣告陳述式放置於程序內,以建立程序層級變數。 或是可能會放在宣告區段中的模組頂端,以建立模組層級變數。
下列範例會建立變數,並指定字串資料類型。
Dim strName As String
如果此陳述式會出現在程序中,則變數 strName
只能用在該程序。 如果在模組的宣告區段中出現陳述式,則變數 strName
可供模組內所有的程序使用,而非用於專案中其他模組內的程序。
若要讓此變數可用於專案中的所有程序,請將 Public 陳述式置於變數之前,如下列範例中所示:
Public strName As String
如需有關命名變數的資訊,請參閱 Visual Basic 命名規則。
可將變數宣告為下列其中一種資料類型:Boolean、Byte、Integer、Long、Currency、Single、Double、Date、String (適用於可變長度變數)、String * length (適用於固定長度字串)、Object 或 Variant。 如果您未指定資料類型,會依預設指派 Variant 資料類型。 您也可以使用 Type 陳述式來建立使用者定義類型。
您可以在一個陳述式中宣告多個變數。 若要指定資料類型,您必須包含每個變數的資料類型。
在下列陳述式中,變數 intX
、intY
及 intZ
宣告為類型 Integer。
Dim intX As Integer, intY As Integer, intZ As Integer
在下列陳述式中,intX
和 intY
宣告為類型 Variant,而且僅 intZ
宣告為類型 Integer。
Dim intX, intY, intZ As Integer
您沒有在宣告陳述式中提供變數的資料類型。 如果您省略資料類型,變數將會是 Variant 類型。
您也可以使用 識別元類型字元 來指定資料類型。 在下列語句中, x
宣告為 Long,並y
z
宣告為 Integers:
Dim intX&, intY%, intZ as Integer
Public 陳述式
使用 Public 陳述式來宣告公用模組層級變數。
Public strName As String
公用變數可以用於專案中的任何程序。 如果在標準模組或類別模組中宣告公用變數,它也可用於任何在參考專案中已宣告公用變數的專案。
Private 陳述式
使用 Private 陳述式來宣告私人模組層級變數。
Private MyName As String
只有相同模組中的程序,才可使用私人變數。
注意事項
當用於模組層級時,Dim 陳述式便相當於 Private 陳述式。 您可能想要使用 Private 陳述式,讓您的程式碼更容易讀取與解譯。
Static 陳述式
當您使用 Static 陳述式,而不是 Dim 陳述式來宣告程序中的變數時,宣告的變數會保留其呼叫該程序之間的值。
Option Explicit 陳述式
您只要在指派的陳述式中使用變數,便等於在 Visual Basic 中隱含宣告變數。 隱含宣告的所有變數都是屬於 Variant 類型。 Variant 類型的變數會比其他大部分的變數,需要更多的記憶體資源。 如果您能夠明確地和特定資料類型宣告變數,應用程式將會更有效率。 明確宣告所有變數,可減少命名衝突錯誤及拼字錯誤的發生率。
如果您不想讓 Visual Basic 作隱含的宣告,可以在進行任何程序之前,將 Option Explicit 陳述式放置於模組中。 此陳述式會要求您在模組內明確地宣告所有變數。 如果模組包含 Option Explicit 陳述式,當 Visual Basic 遇到未於之前宣告的變數名稱或名稱拼寫不正確時,就會發生編譯時期錯誤。
您可以在 Visual Basic 程式設計環境中設定選項,在所有的新模組中自動包含 Option Explicit 的陳述式。 如需有關如何變更 Visual Basic 環境選項的說明,請參閱應用程式的說明文件。 請注意這個選項不會變更已寫入的現有程式碼。
注意事項
您必須明確地宣告固定陣列和動態陣列。
宣告自動化物件變數
當您使用一個應用程式來控制另一個應用程式的物件時,您應該設定參照至另一個應用程式的型別程式庫。 在您設定參照之後,可以根據其最特定的類型來宣告物件變數。 例如,將參照設定為 Microsoft Excel 的型別程式庫時,如果是在 Microsoft Word 中,您可以代表 Excel 的工作表物件,從 Word 中來宣告類型工作表的變數。
如果您正在使用另一個應用程式來控制 Microsoft Access 物件,在大部分的情況下,您可以根據其最特定的類型來宣告物件變數。 您也可以使用新增關鍵字以自動建立物件的新執行個體。 不過,您可能需要指示其為 Microsoft Access 物件。 例如,當您從 Visual Basic 內代表 Access 表單來宣告物件變數時,您必須將 Access 表單物件,和 Visual Basic 的表單物件作區別。 包含在變數宣告中的型別程式庫名稱,如下列範例所示:
Dim frmOrders As New Access.Form
某些應用程式無法識別個別的 Access 物件類型。 即使您從這些應用程式設定參照至 Access 類型程式庫,您必須將所有的 Access 物件變數宣告為 Object 類型。 您也不可以使用新增關鍵字來建立物件的新執行個體。
下列範例顯示如何從無法識別 Access 物件類型的應用程式,代表 Access 應用程式物件的執行個體來宣告變數。 然後,應用程式會建立應用程式物件的執行個體。
Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")
如要判斷應用程式支援何種語法,請參閱應用程式的說明文件。
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。