xlfCaller
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
Returns information about the cell, range of cells, command on a menu, tool on a toolbar, or object that called the DLL command or function that is currently running.
Code called from |
Returns |
---|---|
DLL |
The Register ID. |
A single cell |
A single-cell reference. |
A multi-cell array formula |
A multi-cell reference. |
A conditional formatting expression |
A reference to the cell to which the formatting condition is applied. |
A menu |
A four-element single-row array:
|
A toolbar |
A two-element single-row array:
|
A graphic object |
The object identifier (object name). |
A command associated with an xlcOnEnter, ON.ENTER, event trap |
A reference to the cell or cells being entered. |
A command associated with an xlcOnDoubleclick, ON.DOUBLECLICK, event trap. |
The cell that was double-clicked (not necessarily the active cell). |
Auto_Open, AutoClose, Auto_Activate or Auto_Deactivate macro |
The name of the calling sheet. |
Other methods not listed |
#REF! Error. |
Excel12(xlfCaller, (LPXLOPER12) pxRes,0);
Property Value/Return Value
The return value is one of the following XLOPER/XLOPER12 data types: xltypeRef, xltypeSRef, xltypeNum, xltypeStr, xltypeErr, or xltypeMulti. Since three of these types point to allocated memory, the return value of xlfCaller should always be freed in a call to the xlFree function when it is no longer needed.
For more information about XLOPERs/XLOPER12s see Memory Management in Excel 2007.
Remarks
This function is the only non-worksheet function that can be called from a DLL/XLL worksheet function. Other XLM information functions can only be called from commands or macro-sheet equivalent functions.
Example
\SAMPLES\EXAMPLE\EXAMPLE.C. This function calls a command macro (xlcSelect) and will work correctly only when called from a macro sheet.
short WINAPI CallerExample(void)
{
XLOPER12 xRes;
Excel12(xlfCaller, &xRes, 0);
Excel12(xlcSelect, 0, 1, (LPXLOPER12)&xRes);
Excel12(xlFree, 0, 1, (LPXLOPER12)&xRes);
return 1;
}