Excel で使用されるデータ型Data Types Used by Excel

適用対象: Excel 2013 | Office 2013 | Visual StudioApplies to: Excel 2013 | Office 2013 | Visual Studio

Mirosoft Excel は ANSI C/C++ 型と Excel 固有のデータ構造を交換します。Microsoft Excel exchanges several ANSI C/C++ types and also some Excel-specific data structures. ここでこれらを説明するのは、他のセクションのコンテキスト提供のためです。詳細については、「xlfRegister (形式 1)」のトピックを参照してください。Microsoft Excel exchanges several ANSI C/C++ types and also some Excel-specific data structures. These are mentioned here to provide a context for other sections, and they are discussed in detail in the xlfRegister Function topic.

ANSI C /C++ 形式ANSI C/C++ Types

数値Numbers

すべてのバージョンの Excel:All versions of Excel:

  • 8 バイト倍精度浮動小数点型8-byte double

  • [signed] short [int] – Boolean の値および整数に用いられます[signed] short [int] – used for Boolean values and also integers

  • unsigned short [int]unsigned short [int]

  • [signed long] int[signed long] int

文字列Strings

すべてのバージョンの Excel:All versions of Excel:

  • [signed] char * –: 最大 255 文字のヌル終端文字列[signed] char * – null-terminated byte strings of up to 255 characters

  • unsigned char * – 最大 255 文字の length-counted バイト文字列unsigned char * – length-counted byte strings of up to 255 characters

Excel 2007 以降:Starting in Excel 2007

  • unsigned short * – 最大 32,767 文字の Unicode 文字列で、ヌル終端文字列または length-counted 文字列のいずれかの形式unsigned short * – Unicode strings of up to 32,767 characters, which can be null-terminated or length-counted

Excel のワークシート番号はすべて倍精度小数点として格納されているため、Excel でアドイン関数をこれに代わる整数型として宣言する必要はありません (むしろそうするなら小さな変換オーバーヘッドが発生します) 。All worksheet numbers in Excel are stored as doubles so that it is not necessary (and in fact introduces a small conversion overhead) to declare add-in functions as exchanging integer types with Excel.

整数型を使用している場合、Excel は入力が型の範囲内の値であることを確認します。範囲外の場合は #NUM! Where you are using integer types, Excel verifies that the inputs are within the limits of the type, and they fail with #NUM! で失敗します。if outside these. 例外は、関数を登録して、short int で実装される Boolean 引数を取る場合です。この場合、0 以外の入力はすべて 1 に変換され、0 は直接渡されます。Where you are using integer types, Excel verifies that the inputs are within the limits of the type, and they fail with #NUM! if outside these. The exception is when you are registering a function to take a Boolean argument, implemented using short int. In this case, any non-zero input is converted to 1, and zero is passed straight through.

Excel 固有のデータ構造Excel-Specific Data Structures

すべてのバージョンの Excel:All versions of Excel:

  • FP– 2 次元の浮動小数点型配列構造で、行数は最大 65,356 行、列数は Excel のバージョンでサポートされる最大数をサポートします。FP – – a two-dimensional floating-point array structure supporting up to 65,356 rows by the maximum number columns supported in the given version of Excel.

  • XLOPER– 複数の型のデータ構造で、ワークシートのデータ型 (エラーを含む)、整数、範囲の参照、XLM マクロ シート フロー コントロールの型、および内部バイナリ ストレージ データの型をすべて表します。 XLOPER – – a multi-type data structure that can represent all the worksheet data types (including errors), integers, range references, XLM macro sheet flow control types, and an internal binary storage data type.

    注意

    文字列は最大 255 文字の length-counted 文字列で表されます。Strings are represented as length-counted byte strings of up to 255 characters length.

Excel 2007 以降:Starting in Excel 2007

  • FP12 – 2 次元の浮動小数点型配列構造で、Excel 2007 以降のすべての行および列をサポートします。FP12 – a two-dimensional floating-point array structure supporting all the rows and columns starting in xlxlshort.

  • XLOPER12– 複数の型のデータ構造で、ワークシートのデータ型 (エラーを含む)、整数、範囲の参照、XLM マクロ シート フロー コントロールの型、および内部バイナリ ストレージ データの型をすべて表します。XLOPER12 – – a multi-type data structure that can represent all the worksheet data types (including errors), integers, range references, XLM macro sheet flow control types, and an internal binary storage data type.

    注意

    文字列は、最大 32,767 文字の length-counted Unicode 文字列で表されます。Strings are represented as length-counted Unicode strings of up to 32,767 characters long.

登録データ型コードRegistration Data Type Codes

XLL 関数は、C API 関数 xlfRegister を使用して登録されます。この関数は戻り値および引数の型をエンコードする文字列を 3 番目の引数として取ります。XLL functions are registered using the C API function xlfRegister, which takes as its third argument a string of letters that encode the return and argument types. This string also contains the information that tells Excel whether the function is volatile, is thread-safe (starting in xlxlshort), is macro sheet equivalent, and whether it returns its result by modifying an argument in place. この文字列には、関数が揮発性関数か、スレッド セーフか (Excel 2007 以降)、マクロ シートの同等関数か、また、引数をインプレース変更して結果を返すかどうかということを Excel に指示する情報も含まれています。XLL functions are registered using the C API function xlfRegister, which takes as its third argument a string of letters that encode the return and argument types. This string also contains the information that tells Excel whether the function is volatile, is thread-safe (starting in xlxlshort), is macro sheet equivalent, and whether it returns its result by modifying an argument in place.

次の表は、「xlfRegister (形式 1)」のトピックで再度取り上げて、詳しく説明します。The following table is reproduced and discussed in more detail in the xlfRegister (Form 1) topic. ここでは、本セクションの残りのコンテキストを提供する目的で掲載しています。It is reproduced here in order to provide a context for the rest of this section. たとえば、length-counted Unicode 文字列 (Excel 2007 以降) を取る関数は、C% 引数型を取る関数と表現できます。For example, a function that takes a length-counted Unicode string (starting in Excel 2007) could be described as taking a type C% argument.

データ型Data type 値渡しPass by value 参照渡し (ポインター)Pass by ref (pointer) コメントComments
ブール型 (Boolean)。Boolean
AA
LL
short (0 = false または 1 = true)short (0=false or 1=true)
doubledouble
BB
EE
char *Char*
C、FC, F
Null で終了する ASCII バイト文字列Null-terminated ASCII byte string
unsigned char *unsigned char **
D、GD, G
Length-counted ASCII バイト文字列Length -counted ASCII byte string.
unsigned short * (Excel 2007 以降)unsigned short * (starting in Excel 2007)
C%、F%C%, F%
ヌル終端 Unicode ワイド文字文字列Null-terminated Unicode wide character string.
unsigned short * (Excel 2007 以降)unsigned short * (starting in Excel 2007)
D%、G%D%, G%
Length-counted Unicode ワイド文字文字列Length-counted Unicode wide character string.
unsigned short [int]unsigned short [int]
HH
WORDWORD
[signed] short [int][signed] short [int]
II
MM
16 ビット16-bit
[signed long] int[signed long] int
JJ
NN
32 ビット32-bit
配列Array
OO
参照により以下の 3 つの引数として渡されます。Passed as three arguments by reference:
1. short int *rows1. short int *rows
2. short int *columns2. short int *columns
3. double *array3. double *array
配列Array
(Excel 2007 以降)Starting in Excel 2007
O%O%
参照により以下の 3 つの引数として渡されます。Passed as three arguments by reference:
1. int *rows1. int *rows
2. int *columns2. int *columns
3. double *array3. double *array
FPFP
KK
浮動小数点配列構造Floating-point array structure
FP12FP12
(Excel 2007 以降)Starting in Excel 2007
K%K%
大グリッド浮動小数点配列構造Large grid floating-point array structure.
XLOPERXLOPER
PP
可変型のワークシートの値および配列Variable-type worksheet values and arrays
RR
値、配列、および範囲の参照Values, arrays, and range references
XLOPER12XLOPER12
(Excel 2007 以降)Starting in Excel 2007
QQ
可変型のワークシートの値および配列Variable-type worksheet values and arrays
UU
値、配列、および範囲の参照Values, arrays, and range references

C%F%D%G%K%O%Q、および U は Microsoft Office Excel 2007 から登場する新しい型のため、それ以前のバージョンではサポートされません。The types C%, F%, D%, G%, K%, O%, Q, and U were all new in Microsoft Office Excel 2007 and are not supported in earlier versions. 文字列型 FF%G、および G% は、インプレース変更される引数に使用します。The string types F, F%, G, and G% are used for arguments that are modified-in-place. 引数 XLOPER または XLOPER12 の引数は、それぞれ P または Q の型として登録されている場合、Excel は準備段階で単一セル参照を単純数値に、複数セル参照を配列に変換します。The types C%, F%, D%, G%, K%, O%, Q, and U were all new in xlxlversion12 and are not supported in earlier versions. The string types F, F%, G, and G% are used for arguments that are modified-in-place. When XLOPER or XLOPER12 arguments are registered as types P or Q respectively, Excel converts single-cell references to simple values and multi-cell references to arrays when it prepares them.

P および Q の型は常に逆参照されるため、xltypeRef または xltypeSRef ではなく、必ず xltypeNumxltypeStrxltypeBoolxltypeErrxltypeMultixltypeMissing または xltypeNil のいずれかとして入力されます。P and Q types always arrive in your function as one of the following types: xltypeNum, xltypeStr, xltypeBool, xltypeErr, xltypeMulti, xltypeMissing, or xltypeNil, but not xltypeRef or xltypeSRef because these are always dereferenced.

O の型は、スタックの 3 つの引数であり、引数が参照によって渡される Fortran Dll との互換性を確保するために導入されました。Type O, which is really three arguments on the stack, was introduced for compatibility with Fortran DLLs where arguments are passed by reference. インプレース変更の戻り値として引数を宣言し、結果を参照値に配置する場合以外では、値を返す目的で使用できません。It cannot be used to return a value except by declaring the argument as a modify-in-place return value and placing the results in the referenced values. O% の型は、Excel 2007 の O の型を拡張したもので、Office Excel 2003 グリッドよりも広い領域をカバーしている配列にアクセスできます。Type O% extends type O in Excel 2007 so that it can access arrays that cover areas larger than the Office Excel 2003 grid.

関連項目See also