我花了很多时间寻找所有C API XLM功能的完整文档而没有成功。
我发现这个页面说明了其中一些: http://msdn.microsoft.com/en-us/library/office/bb687910%28v=office.12%29.aspx
但是比如我想了解并使用xlfAddMenu,我在MSDN上找不到解释我的页面。
您知道是否有可用的文件?显然,去那里并不容易。
答案 0 :(得分:0)
所有C API XLM功能都没有详尽的官方文档。但是,正如documentation所述关于C API XLM函数的说法:
Excel通过有用的C API公开了更多功能 当你开发XLL时。它们对应于Excel工作表 XLM宏提供的函数和函数以及命令 片“。
此外,符合SDK安装的EXAMPLE.[C,H]
文件使用其中一些功能,您可以使用它来学习如何使用它们。例如,xlfAddMenu
用于xlAutoOpen
回调函数。
// In the following block of code, the Generic drop-down menu is created.
// Before creation, a check is made to determine if Generic already
// exists. If not, it is added. If the menu needs to be added, memory is
// allocated to hold the array of menu items. The g_rgMenu[] table is then
// transferred into the newly created array. The array is passed as an
// argument to xlfAddMenu to actually add the drop-down menu before the
// help menu. As a last step the memory allocated for the array is
// released.
//
// This block uses TempStr12() and TempNum12(). Both create a temporary
// XLOPER12. The XLOPER12 created by TempStr12() contains the string passed to
// it. The XLOPER12 created by TempNum12() contains the number passed to it.
// The Excel12f() function frees the allocated temporary memory. Both
// functions are part of the framework library.
Excel12f(xlfGetBar, &xTest, 3, TempInt12(10), TempStr12(L"Generic"), TempInt12(0));
if (xTest.xltype == xltypeErr)
{
hMenu = GlobalAlloc(GMEM_MOVEABLE,sizeof(XLOPER12) * g_rgMenuCols * g_rgMenuRows);
px = pxMenu = (LPXLOPER12) GlobalLock(hMenu);
for (i=0; i < g_rgMenuRows; i++)
{
for (j=0; j < g_rgMenuCols; j++)
{
px->xltype = xltypeStr;
px->val.str = TempStr12(g_rgMenu[i][j])->val.str;
px++;
}
}
xMenu.xltype = xltypeMulti;
xMenu.val.array.lparray = pxMenu;
xMenu.val.array.rows = g_rgMenuRows;
xMenu.val.array.columns = g_rgMenuCols;
Excel12f(xlfAddMenu,0,3,TempNum12(10),(LPXLOPER12)&xMenu,TempStr12(L"Help"));
GlobalUnlock(hMenu);
GlobalFree(hMenu);
}
答案 1 :(得分:0)
根据我的说法,最好的文档(但没有更新..)是以下书:使用C / C ++中的Excel加载项开发的财务应用程序,Steve Dalton的第2版。你可以找到xlfAddMenu函数页面332的描述。你也可以在Microsoft Excel XLL软件开发工具包的chm文件中找到一些有用的信息,包括代码示例(注意我没有找到xlfAddMenu,所以我猜它是一个折旧函数)。