1
Excelアドインの開発を進めています。私は、Excel 2007 SDKのサンプルコードを使用して小さな関数をガイドとして試しています。私は、Excelでダブルタイプのデータを表示しようとするのが難しいです。サンプルコードの実行時にUDFがDisplayDouble()と呼ばれ、DisplayDouble(12.3)などの実数型データの引数を指定して呼び出しを行うと仮定すると、実数型データを参照する引数を使用しようとすると、 DisplayDouble(A1)などのセルからExcelワークシートのセルA1の値が12.3の場合サンプルコードが機能しないExcel 2007 SDKを使用してxlTypeNumをC++で倍精度化する方法
この段落のサンプルコードは、次のとおりです。任意のヒントは、私はあなたがxltypeNumに値を強要のように見えますが、その後、D = xlt.val.wではなく、D = xlt.val.numで、整数値を取っている学習ラダーに沿って
_declspec(dllexport) LPXLOPER12 WINAPI DisplayDouble (LPXLOPER12 n)
{
static XLOPER12 xResult;
XLOPER12 xlt;
int error = -1;
double d;
switch (n->xltype)
{
case xltypeNum:
d = (double)n->val.num;
if (max < 0)
error = xlerrValue;
xResult.xltype = xltypeNum;
xResult.val.num = d;
break;
case xltypeSRef:
error = Excel12f(xlCoerce, &xlt, 2, n, TempNum12(xltypeNum));
if (!error)
{
error = -1;
d = xlt.val.w;
xResult.xltype = xltypeNum;
xResult.val.num = d;
}
Excel12f(xlFree, 0, 1, &xlt);
break;
default:
error = xlerrValue;
break;
}
if (error != - 1)
{
xResult.xltype = xltypeErr;
xResult.val.err = error;
}
//Word of caution - returning static XLOPERs/XLOPER12s is not thread safe
//for UDFs declared as thread safe, use alternate memory allocation mechanisms
return(LPXLOPER12) &xResult;
}
エラーを指摘していただきありがとうございます。 –