Excel4v/Excel12v
適用対象: Excel 2013 | Office 2013 | Visual Studio
Microsoft Excel ワークシートの内部関数、マクロ シート関数やコマンド、または XLL 固有の特殊関数やコマンドを DLL、XLL、またはコード リソース内部から呼び出します。
Excel のすべての最新バージョンは、Excel4v をサポートしています。 Excel 2007 以降では、 Excel12v がサポートされています。
これらの関数は、Excel が DLL または XLL に制御を渡している場合にのみ、呼び出すことができます。 これらの関数は、Excel が Visual Basic for Applications (VBA) への呼び出しを介して間接的に制御を渡したときにも呼び出せます。 それ以外の時に、これらの関数を呼び出すことはできません。 たとえば、DllMain 関数に対する呼び出しの間も、オペレーティング システムが DLL を呼び出しているときも、これらの関数を呼び出すことはできません。DLL が作成したスレッドからも、これらの関数を呼び出すことはできません。
Excel4 関数と Excel12 関数は、スタック上の可変長リストとして引数を受け入れますが、Excel4v 関数と Excel12v 関数は引数を配列として受け入れます。 その他のすべての点で、 Excel4 は Excel4v と同じように動作し、 Excel12 は Excel12v と同じように動作します。
int _cdecl Excel4v(int iFunction, LPXLOPER pxRes, int iCount, LPXLOPER rgx[]);
int _cdecl Excel12v(int iFunction, LPXLOPER12 pxRes, int iCount, LPXLOPER12 rgx[]);
パラメーター
iFunction (int)
呼び出すコマンド、関数、または特殊関数を示す数値。 iFunction の有効な値の一覧は、次の解説を参照してください。
pxRes (LPXLOPER または LPXLOPER12)
評価された関数の結果を保持する、XLOPER (Excel4v の場合) または XLOPER12 (Excel12v の場合) へのポインター。
iCount (int)
関数へ渡される後続の引数の数。 Excel 2003 までのバージョンでは、0 - 30 の任意の数です。 Excel 2007 以降は、0 から 255 までの任意の数です。
rgx (LPXLOPER [] または LPXLOPER12 [])
関数への引数を含む配列です。 配列内のすべての引数が XLOPER または XLOPER12 の値へのポインターである必要があります。
戻り値
これらの関数は、Excel4 および Excel12 と同じ値を返します。
注釈
これらの関数は、演算子に渡された引数の数が可変の場合に役立ちます。 たとえば、 Excel4v と Excel12v は 、xlfRegister を使用して関数を登録する場合に便利です。引数の合計数は、登録されている関数によって取得される引数の数によって異なります。 Excel4 または Excel12 のラッパー関数を記述するときには、Excel4v および Excel12v も便利です。 これらの場合、可変個引数リストを可変サイズの単一の配列の引数に変換し (Excel4 または Excel12 へ通常どおり提供されるように)、Excel4v または Excel12v を使用して Excel にコールバックする必要があります。
例
コードの例については、次に示す SDK をインストールした場所にある、Excel 2010 XLL SDK の Excel および Excel12f 関数のコードを参照してください。
Samples\Framewrk\Framewrk.c