宣告變數

要在 VBA 中顯式宣告變數,請使用 Dim 語句,後跟變數名稱和型別。如果在未宣告的情況下使用變數,或者未指定型別,則將為其分配 Variant 型別。

在模組的第一行使用 Option Explicit 語句強制在使用之前宣告所有變數(請參閱始終使用 Option Explicit )。

強烈建議始終使用 Option Explicit,因為它有助於防止拼寫錯誤/拼寫錯誤並確保變數/物件保持其預期型別。

Option Explicit

Sub Example()
    Dim a As Integer
    a = 2
    Debug.Print a
    'Outputs: 2

    Dim b As Long
    b = a + 2
    Debug.Print b
    'Outputs: 4

    Dim c As String
    c = "Hello, world!"
    Debug.Print c
    'Outputs: Hello, world!
End Sub

可以使用逗號作為分隔符在一行上宣告多個變數,但每個型別必須單獨宣告,否則它們將預設為 Variant 型別。

Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str)    'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng)    'Output: Long

變數也可以使用資料型別字元字尾($%&!#@)宣告,但是越來越不鼓勵使用它們。

 Dim this$  'String
 Dim this%  'Integer
 Dim this&  'Long
 Dim this!  'Single
 Dim this#  'Double
 Dim this@  'Currency

其他宣告變數的方法是:

  • Static 喜歡:Static CounterVariable as Integer

當你使用 Static 語句而不是 Dim 語句時,宣告的變數將在呼叫之間保留其值。

  • Public 喜歡:Public CounterVariable as Integer

公共變數可以在專案的任何過程中使用。如果在標準模組或類模組中宣告瞭公共變數,那麼它也可以在任何引用宣告公共變數的專案的專案中使用。

  • Private 喜歡:Private CounterVariable as Integer

私有變數只能由同一模組中的過程使用。

來源和更多資訊:

MSDN-宣告變數

型別字元(Visual Basic)