資料類型摘要

資料類型即是可以決定它可以保留之資料類型的變數特性。 資料類型包括下表中所列的類型,以及使用者定義類型和特定類型物件。

設定內建的資料類型

下表中顯示支援的資料類型,包括儲存空間的大小和範圍。

資料類型 儲存大小 範圍
Boolean 2 個位元組 TrueFalse
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 位元的環境下會轉換成 LongLongLongPtr 應用於代表指標和處理 Declare 陳述式 中的值,並啟用可以同時在 32 位元和 64 位元環境下寫入相容的程式碼。

注意事項

使用 StrConv 函數將其中一種字串資料轉換成另一種字串資料。

識別項型別字元

提供一組 識別項型別字元 ,您可以在宣告中使用這些字元來指定變數或常數的資料類型。 下表顯示可用的識別項型別字元與使用範例。

識別項型別字元 資料類型 範例
% 整數 Dim L%
& Long Dim M&
^ LongLong Dim N^
@ 貨幣 Const W@ = 37.5
! 單一 Dim Q!
# 雙精度浮點數 Dim X#
$ 字串 Dim V$ = "Secret"

、、、 DateVariantByteObjectDecimalLongPtrDouble 資料類型或任何複合資料型別,例如陣列、集合、字典、結構或使用者定義型別,都不存在 Boolean 識別項型別字元。

在某些情況下,您可以將字元附加 $ 至 Visual Basic 函式,例如 Left$ ,而不是 Left ,以取得 類型的 String 傳回值。

在所有情況下,識別項型別字元都必須緊接在識別碼名稱後面。

資料類型間的轉換

如需如何使用下列函式將運算式強制轉型為特定資料類型的範例,請參閱 類型轉換函 式: CBoolCByteCCurCDateCDblCDecCIntCLngCLngLngCLngPtrCSngCStrCVar

至於下列函數,請參閱個別的頁面:CVErrFixInt

注意事項

CLngLng 只在 64 位元平台上有效。

驗證資料類型

若要驗證資料類型,請參閱下列函數:

另請參閱

支援和意見反應

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