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

Microsoft Excel ワークシートの内部関数、マクロ シート関数やコマンド、または XLL 固有の特殊関数やコマンドを DLL、XLL、またはコード リソース内部から呼び出します。Calls an internal Microsoft Excel worksheet function, macro sheet function or command, or XLL-only special function or command, from within a DLL, XLL, or code resource.

Excel のすべての最新バージョンは、Excel4v をサポートしています。Excel 2007 以降のバージョンでは、Excel12v がサポートされています。All recent versions of Excel support Excel4v. Starting in Excel 2007, Excel12v is supported.

これらの関数は、Excel が DLL または XLL に制御を渡している場合にのみ、呼び出すことができます。These functions can be called only when Excel has passed control to the DLL or XLL. これらの関数は、Excel が Visual Basic for Applications (VBA) への呼び出しを介して間接的に制御を渡したときにも呼び出せます。They can also be called when Excel has passed control indirectly via a call to Visual Basic for Applications (VBA). それ以外の時に、これらの関数を呼び出すことはできません。They cannot be called at any other time. たとえば、DllMain 関数に対する呼び出しの間も、オペレーティング システムが DLL を呼び出しているときも、これらの関数を呼び出すことはできません。DLL が作成したスレッドからも、これらの関数を呼び出すことはできません。For example, they cannot be called during calls to the DllMain function or other times when the operating system has called the DLL, or from a thread created by the DLL.

Excel4 と Excel12 関数は、スタック上の可変長リストとしてそれらの引数を受け入れます。一方、Excel4vExcel12v 関数は、配列としてそれらの引数を受け入れます。それ以外の点のすべてで、Excel4Excel4v と同じように動作し、Excel12Excel12v と同じように動作します。The Excel4 and Excel12 functions accept their arguments as a variable length list on the stack, whereas the Excel4v and Excel12v functions accept their arguments as an array. In all other respects, Excel4 behaves the same as Excel4v, and Excel12 behaves the same as 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 (int)

呼び出すコマンド、関数、または特殊関数を示す数値。iFunction の有効な値の一覧は、次の解説を参照してください。A number that indicates the command, function, or special function you want to call. For a list of valid iFunction values, see the following Remarks section.


評価された関数の結果を保持する、XLOPER (Excel4v の場合) または XLOPER12 (Excel12v の場合) へのポインター。A pointer to an XLOPER (in the case of Excel4v) or an XLOPER12 (in the case of Excel12v) that will hold the result of the evaluated function.

iCount (int)iCount (int)

関数へ渡される一連の引数の数。Excel 2003 以前のバージョンでは、0 ~ 30 の任意の数です。Excel 2007 以降は、0 ~ 255 の任意の数です。The number of subsequent arguments that will be passed to the function. In versions of Excel up to 2003 this can be any number from 0 through 30. Starting in Excel 2007, this can be any number from 0 through 255.

rgx (LPXLOPER [] または LPXLOPER12 [])rgx (LPXLOPER [] or LPXLOPER12 [])

関数への引数を含む配列です。配列内のすべての引数が XLOPER または XLOPER12 の値を指すポインターである必要があります。An array that contains the arguments to the function. All arguments in the array must be pointers to XLOPER or XLOPER12 values.

戻り値Return value

これらの関数は、Excel4 および Excel12 と同じ値を返します。These functions return the same values as Excel4 and Excel12.


これらの関数は、演算子に渡された引数の数が可変の場合に役立ちます。たとえば Excel4v および Excel12v は、xlfRegister (引数の合計数が、登録対象の関数が取る引数の数によって決まる) を使用して関数を登録するときに役に立ちます。Excel4v および Excel12v は、Excel4 または Excel12 のラッパー関数を記述するときにも役立ちます。これらの場合、(通常 Excel4 または Excel12 に指定される) 可変引数リストを可変サイズの単一の配列の引数に変換し、Excel4v または Excel12v を使用して Excel にコールバックする必要があります。These functions are useful where the number of arguments passed to the operator is variable. For example, Excel4v and Excel12v are useful when you register functions by using xlfRegister where the number of total arguments depends on the number of arguments taken by the function being registered. Excel4v and Excel12v are also useful when you write a wrapper function for Excel4 or Excel12. In these cases, you need to convert a variable argument list, as would normally be supplied to Excel4 or Excel12, to a single array argument of variable size to call back into Excel by using Excel4v or Excel12v.


コードの例については、次に示す SDK をインストールした場所にある、Excel 2010 XLL SDK の Excel および Excel12f 関数のコードを参照してください。For code examples, see the code for the Excel and Excel12f functions in the Excel 2010 XLL SDK, at the following location where you installed the SDK:


関連項目See also