資料類型摘要
資料類型即是可以決定它可以保留之資料類型的變數特性。 資料類型包括下表中所列的類型,以及使用者定義類型和特定類型物件。
設定內建的資料類型
下表中顯示支援的資料類型,包括儲存空間的大小和範圍。
資料類型 | 儲存大小 | 範圍 |
---|---|---|
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 個位元組 | -657,434 (100) 年 1 月 1 日到 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" |
、、、 Date
Variant
Byte
Object
Decimal
LongPtr
Double
資料類型或任何複合資料型別,例如陣列、集合、字典、結構或使用者定義型別,都不存在 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 支援與意見反應。