Excel で使用されるデータ型
適用対象: Excel 2013 | Office 2013 | Visual Studio
Mirosoft Excel は ANSI C/C++ 型と Excel 固有のデータ構造を交換します。 ここでこれらを説明するのは、他のセクションのコンテキスト提供のためです。詳細については、「xlfRegister (形式 1)」のトピックを参照してください。
ANSI C /C++ 形式
数値
すべてのバージョンの Excel:
8 バイト倍精度浮動小数点型
[signed] short [int] – Boolean の値および整数に用いられます
unsigned short [int]
[signed long] int
文字列
すべてのバージョンの Excel:
[signed] char * – 最大 255 文字のヌル終端文字列
[signed] char * – 最大 255 文字の length-counted 文字列
Excel 2007 以降:
- unsigned short * – 最大 32,767 文字の Unicode 文字列で、ヌル終端文字列または length-counted 文字列のいずれかの形式
Excel のワークシート番号はすべて倍精度小数点として格納されているため、Excel でアドイン関数をこれに代わる整数型として宣言する必要はありません (むしろそうするなら小さな変換オーバーヘッドが発生します) 。
整数型を使用している場合、Excel は入力が型の制限内にあることを確認し、これら以外の場合 は #NUM! で失敗します。 例外は、関数を登録して、short int で実装される Boolean 引数を取る場合です。この場合、0 以外の入力はすべて 1 に変換され、0 は直接渡されます。
Excel 固有のデータ構造
すべてのバージョンの Excel:
FP – 2次元の浮動小数点型配列構造で、行数は最大 65,356 行、列数は Excel のバージョンでサポートされる最大数をサポートします。
XLOPER – 複数の型のデータ構造で、ワークシートのデータ型 (エラーを含む)、整数、範囲の参照、XLM マクロ シート フロー コントロールの型、および内部バイナリー ストレージ データの型をすべて表します。
注:
文字列は最大 255 文字の length-counted 文字列で表されます。
Excel 2007 以降:
FP12 – Excel 2007 以降のすべての行と列をサポートする 2 次元浮動小数点配列構造体。
XLOPER12 – 複数の型のデータ構造で、ワークシートのデータ型 (エラーを含む)、整数、範囲の参照、XLM マクロ シート フロー コントロールの型、および内部バイナリー ストレージ データの型をすべて表します。
注:
文字列は、最大 32,767 文字の length-counted Unicode 文字列で表されます。
登録データ型コード
XLL 関数は、C API 関数 xlfRegister を使用して登録されます。この関数は戻り値および引数の型をエンコードする文字列を 3 番目の引数として取ります。 この文字列には、関数が揮発性関数か、スレッド セーフか (Excel 2007 以降)、マクロ シートの同等関数か、また、引数をインプレース変更して結果を返すかどうかということを Excel に指示する情報も含まれています。
次の表は、「xlfRegister (形式 1)」のトピックで再度取り上げて、詳しく説明します。 ここでは、本セクションの残りのコンテキストを提供する目的で掲載しています。 たとえば、length-counted Unicode 文字列 (Excel 2007 以降) を取る関数は、C% 引数型を取る関数と表現できます。
データ型 | 値渡し | 参照渡し (ポインター) | コメント |
---|---|---|---|
ブール型 (Boolean)。 |
A |
L |
short (0 = false または 1 = true) |
double |
B |
E |
|
char * |
C、F |
Null で終了する ASCII バイト文字列 |
|
unsigned char * |
D、G |
Length-counted ASCII バイト文字列 |
|
unsigned short * (Excel 2007 以降) |
C%、F% |
ヌル終端 Unicode ワイド文字文字列 |
|
unsigned short * (Excel 2007 以降) |
D%、G% |
Length-counted Unicode ワイド文字文字列 |
|
unsigned short [int] |
H |
WORD |
|
[signed] short [int] |
I |
M |
16 ビット |
[signed long] int |
J |
N |
32 ビット |
配列 |
O |
参照により以下の 3 つの引数として渡されます。 1. 短い int *rows 2. 短い int *columns 3. double *array |
|
配列 (Excel 2007 以降) |
O% |
参照により以下の 3 つの引数として渡されます。 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 の型は常に逆参照されるため、xltypeRef または xltypeSRef ではなく、必ず xltypeNum、xltypeStr、xltypeBool、xltypeErr、xltypeMulti、xltypeMissing または xltypeNil のいずれかとして入力されます。
O の型は、スタックの 3 つの引数であり、引数が参照によって渡される Fortran Dll との互換性を確保するために導入されました。 インプレース変更の戻り値として引数を宣言し、結果を参照値に配置する場合以外では、値を返す目的で使用できません。 O% の型は、Excel 2007 の O の型を拡張したもので、Office Excel 2003 グリッドよりも広い領域をカバーしている配列にアクセスできます。