適用於: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%、Q 和 U 類型都是 Microsoft Office Excel 2007 中的新功能,在舊版中不支援。 字串類型 F、 F%、 G 和 G% 會用於就地修改的自變數。 當 XLOPER 或 XLOPER12 自變數分別註冊為 類型 P 或 Q 時,Excel 會在準備單一單元格參考時,將單一單元格參考轉換為簡單值,以及將多單元格參考轉換成數位。
P 和 Q 類型一律會以下列其中一種類型送達您的函式: xltypeNum、 xltypeStr、 xltypeBool、 xltypeErr、 xltypeMulti、 xltypeMissing 或 xltypeNil,但不會到達 xltypeRef 或 xltypeSRef ,因為這些一律為 dereferenced。
類型 O 實際上是堆疊上的三個自變數,是為了與以傳址方式傳遞自變數的 Fortran DLL 相容。 它不能用來傳回值,除非將自變數宣告為修改就地傳回值,並將結果放在參考的值中。 類型 O% 會擴充 Excel 2007 中的 類型 O ,使其能夠存取涵蓋大於 Office Excel 2003 方格區域的數位。