資料類型即是可以決定它可以保留之資料類型的變數特性。 資料類型包括下表中所列的類型,以及使用者定義類型和特定類型物件。
設定內建的資料類型
下表中顯示支援的資料類型,包括儲存空間的大小和範圍。
| 資料類型 | 儲存大小 | 範圍 |
|---|---|---|
| Boolean | 2 個位元組 | True 或 False |
| Byte | 1 個位元組 | 0 到 255 |
| Collection | 未知 | 未知 |
| Currency (按比例調整整數) | 8 個位元組 | -922,337,203,685,477.5808 至 922,337,203,685,477.5807 |
| Date | 8 個位元組 | -100) 1月1日 (657,434人,降至9999年12月31日 (2,958,465人) |
| Decimal | 14 個位元組 | +/-79,228,162,514,264,337,593,543,950,335 (沒有小數點) + /-7.9228162514264337593543950335 (小數點右側有 28 位數) 最小的非零數字為 +/-0.0000000000000000000000000001 |
| Dictionary | 未知 | 未知 |
| Double (雙精確度浮點數) | 8 個位元組 | -1.79769313486231E308 到 -4.94065645841247E-324 (負數值) 4.94065645841247E-324 to 1.79769313486232E308 for (正數值) |
| Integer | 2 個位元組 | -32,768 至 32,767 |
| Long (長整數) | 4 個位元組 | -2,147,483,648 至 2,147,483,647 |
| LongLong (LongLong 整數) | 8 個位元組 | -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 只在 64 位元平台上有效。 |
| LongPtr (在 32 位元系統為長整數,而在 64 位元系統為 LongLong 整數) | 在 32 位元系統上為 4 個位元組 在 64 位元系統上為 8 個位元組 |
-2,147,483,648 至 2,147,483,647 (32 位元系統) -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 (64 位元系統) |
| Object | 4 個位元組 | 任何物件參照 |
| Single (單精度浮點數) | 4 個位元組 | -3.402823E38 至 -1.401298E-45 (負數值) 1.401298E-45 至 3.402823E38 (正數值) |
| String (變數長度) | 10 個位元組 + 字串長度 | 0 到約 2 億 |
| String (固定長度) | 字串的長度 | 1 到約 65,400 |
| Variant (含數字) | 16 位元組 | 任何達到 Double 範圍的數值 |
| Variant (含字元) | 22 個位元組 + 字串長度 (在 64 位元系統上為 24 個位元組) | 與可變長度 String 相同的範圍 |
| 使用者定義 (使用類型) | 元素所需的數字 | 每個元素的範圍與其資料類型範圍相同。 |
Variant 包含需要超過陣列本身的 12 個位元組。
注意事項
任何資料類型的 Array 皆需要 20 個位元組的記憶體加上每個陣列維度的 4 個位元組,再加上資料本身所佔的位元組數。 資料所佔的記憶體可透過將各元素大小乘以資料元素數量來計算。
例如,單一矩陣中的資料是由 4 個 2 位元組的整數資料元素組成,一個元素佔 8 個位元組。 資料所需的 8 個位元組加上 24 個位元組的額外負荷,使得陣列需要的記憶體容量為 32 個位元組。 在 64 位元平台上,SAFEARRAY 佔了 24 個位元組 (加上各 Dim 陳述式的 4 個位元組)。 pvData 成員是 8 個位元組的指標,並且必須與 8 個位元組的界線對齊。
注意事項
LongPtr 不是真正的資料類型,因為它在 32 位元的環境下會轉換成 Long,在 64 位元的環境下會轉換成 LongLong。 LongPtr 應用於代表指標和處理 Declare 陳述式 中的值,並啟用可以同時在 32 位元和 64 位元環境下寫入相容的程式碼。
注意事項
使用 StrConv 函數將其中一種字串資料轉換成另一種字串資料。
識別碼類型字元
一組 識別碼類型字元 可供你在宣告中使用,用來指定變數或常數的資料型別。 下表顯示可用的識別碼類型字元及使用範例。
| 識別碼類型字元 | 資料類型 | 範例 |
|---|---|---|
% |
整數 | Dim L% |
& |
Long | Dim M& |
^ |
LongLong | Dim N^ |
@ |
貨幣 | Const W@ = 37.5 |
! |
單一 | Dim Q! |
# |
雙精度浮點數 | Dim X# |
$ |
字串 | Dim V$ = "Secret" |
對於 、 Byte、 LongPtrDecimalDateDouble、 資料 VariantObject型別,或任何複合資料型態(如陣列、集合、字典、結構體或使用者定義型別)都不存在Boolean識別字元。
在某些情況下,你可以將 $ 字元附加到 Visual Basic 函式中, Left$ 例如代替 Left,以獲得回傳的值 型別 String。
在所有情況下,識別碼類型字元必須緊接在識別碼名稱之後。
資料類型間的轉換
請參見類型轉換函數,了解如何使用以下函式強制將表達式強制到特定資料型態:CBool、CByte、CCur、CDate、CDbl、CDec、CInt、CLng、CLngLng、CLngPtr、CSng、CStr 及 CVar。
至於下列函數,請參閱個別的頁面:CVErr、Fix 和 Int。
注意事項
CLngLng 只在 64 位元平台上有效。
驗證資料類型
若要驗證資料類型,請參閱下列函數:
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。