共用方式為


Excel 使用的數據類型

適用於:Excel 2013 |Office 2013 |Visual Studio

Microsoft Excel 會交換數個 ANSI C/C++ 類型,以及一些 Excel 特定的數據結構。 這裡會說明這些內容以提供其他章節的內容,並在 xlfRegister (Form 1) 主題中詳細討論。

ANSI C/C++ 類型

數字

所有版本的 Excel:

  • 8 位元組雙精度浮點數

  • [signed] short [int] – 用於 布爾 值和整數

  • unsigned short [int]

  • [signed long] int

字串

所有版本的 Excel:

  • [signed] char * – 最多 255 個字元的以 Null 結尾的位元組字串

  • unsigned char * – 長度計算位元組位元串最多 255 個字元

從 Excel 2007 開始:

  • unsigned short * – 最多 32,767 個字元的 Unicode 字符串,可以是以 Null 終止或長度計算

Excel 中的所有工作表編號都會儲存為雙精度浮點數,因此不需要 (而且實際上會產生少量的轉換額外負荷,) 將載入巨集函數宣告為與 Excel 交換整數類型。

當您使用整數類型時,Excel 會驗證輸入是否在類型的限制內,如果超出 #NUM, 則會失敗。 例外狀況是當您註冊函式以接受使用 short int 實作 的布爾值 自變數時。在此情況下,任何非零的輸入都會轉換成 1,而零則會直接傳遞。

Excel 特定的數據結構

所有版本的 Excel:

  • FP – 二維浮點陣列結構,支援最多65,356個數據列,並依指定版本Excel中支援的最大資料行數目。

  • XLOPER - 多類型數據結構,可代表所有工作表數據類型 (包括錯誤) 、整數、範圍參考、XLM 巨集表流程控制類型,以及內部二進位記憶體數據類型。

    注意事項

    字串會以長度計算的位元組位元串表示,長度上限為 255 個字元。

從 Excel 2007 開始:

  • FP12 – 二維浮點數位結構,支援從 Excel 2007 開始的所有數據列和數據行。

  • XLOPER12 – 可代表所有工作表數據類型的多類型數據結構, (包括錯誤) 、整數、範圍參考、XLM 巨集表流程控制類型,以及內部二進位記憶體數據類型。

    注意事項

    字串會以長度計算的 Unicode 字串表示,長度上限為 32,767 個字元。

註冊數據類型代碼

XLL 函式會使用 C API 函 式 xlfRegister 註冊,該函式會將傳回和自變數類型編碼的字母字串作為其第三個自變數。 此字串也包含資訊,告知 Excel 函式是否為變動性、是否為安全線程 (從 Excel 2007) 開始、是巨集工作表對等專案,以及是否藉由就地修改自變數來傳回其結果。

下表會在 xlfRegister (Form 1) 主題中重現並詳細討論。 此處會重現,以提供本節其餘部分的內容。 例如,從 Excel 2007 開始 (接受長度計算 Unicode 字串) 的函式,可以描述為採用類型 C% 自變數。

資料類型 依值傳遞 透過 ref 傳遞 (指標) Comments
布林值
A
L
short (0=false 或 1=true)
double
B
E
煳*
C、F
以 Null 結尾的 ASCII 位元組字串
unsigned char *
D、G
長度 -已計算 ASCII 位元組字串
從 Excel 2007) 開始,不帶正負號的短 * (
C%、F%
以 Null 結尾的 Unicode 寬字元字串
從 Excel 2007) 開始,不帶正負號的短 * (
D%、G%
長度計算的 Unicode 寬字元字串
unsigned short [int]
H

[signed] short [int]
I
M
16 位
[signed long] int
J
N
32 位元
陣列
O
以參考方式傳遞為三個自變數:
1. short int *rows
2. short int *columns
3. double *array
陣列
從 Excel 2007) 開始 (
O%
以參考方式傳遞為三個自變數:
1. int *rows
2. int *columns
3. double *array
FP
K
浮點陣列結構
FP12
從 Excel 2007) 開始 (
K%
大型方格浮點陣列結構
XLOPER
P
變數類型工作表值和陣列
R
值、數位和範圍參考
XLOPER12
從 Excel 2007) 開始 (
Q
變數類型工作表值和陣列
U
值、數位和範圍參考

C%F%D%G%K%O%QU 類型都是 Microsoft Office Excel 2007 中的新功能,在舊版中不支援。 字串類型 FF%GG% 會用於就地修改的自變數。 當 XLOPERXLOPER12 自變數分別註冊為 類型 PQ 時,Excel 會在準備單一單元格參考時,將單一單元格參考轉換為簡單值,以及將多單元格參考轉換成數位。

PQ 類型一律會以下列其中一種類型送達您的函式: xltypeNumxltypeStrxltypeBoolxltypeErrxltypeMultixltypeMissingxltypeNil,但不會到達 xltypeRefxltypeSRef ,因為這些一律為 dereferenced。

類型 O 實際上是堆疊上的三個自變數,是為了與以傳址方式傳遞自變數的 Fortran DLL 相容。 它不能用來傳回值,除非將自變數宣告為修改就地傳回值,並將結果放在參考的值中。 類型 O% 會擴充 Excel 2007 中的 類型 O ,使其能夠存取涵蓋大於 Office Excel 2003 方格區域的數位。

另請參閱