XLL+ Class Library (6.3)

CXlOper::SetLongFormulaIntl() Example

CopyC++
// Function:    SetLongFormulaIntl 
// Purpose:     Paste a long formula to the current cell 
 
//{{XLP_SRC(SetLongFormulaIntl) 
    // NOTE - the FunctionWizard will add and remove mapping code here. 
    //    DO NOT EDIT what you see in these blocks of generated code!
IMPLEMENT_XLLFN3(SetLongFormulaIntl, SetLongFormulaIntl_4, 
    SetLongFormulaIntl_12, "A", "A", L"SetLongFormulaIntl", 0, L"", 0, L"14", 0,
    L"Paste a long formula to the current cell", 0, L"", 0, 0, L"{SetLongFormu"
    L"laIntl,,,Paste a long formula to the current cell,14,2,132,A,{},{},3,,0,"
    L"0}", 2)
BOOL SetLongFormulaIntl_Impl();

extern "C" __declspec(dllexport)
BOOL SetLongFormulaIntl_12()
{
    XLL_FIX_STATE;
    return SetLongFormulaIntl_Impl();
}
extern "C" __declspec(dllexport)
BOOL SetLongFormulaIntl_4()
{
    XLL_FIX_STATE;
    return SetLongFormulaIntl_Impl();
}

BOOL SetLongFormulaIntl_Impl()
{
    // End of generated code 
//}}XLP_SRC 
 
    // Build a long formula: 
    // =LEFT("abcde..."&"abcde..."&...,200) 
 
    // Note that "LEFT" is in always in English, and that the  
    // argument separator is always a comma (US English settings). 
 
    int nChars = 200;
    int nRepeats = 4;

    char achVal1[1024];
    int i;
    for (i = 0; i < nChars; i++)
        achVal1[i] = 'A' + (i % 26);
    achVal1[i] = 0;
    CString strVal2 = "";
    for (i = 0; i < nRepeats; i++)
        strVal2 += ((i > 0) ? "&" : "") + CString("\"") + achVal1 + "\"";
    CString strFormula = "=LEFT(" + strVal2 + ", 200)";

    // Report formula length
    CString strMsg;
    strMsg.Format("Formula length = %d", strFormula.GetLength());
    CXllApp::XlMessageBox(strMsg, XlMessageBoxTypeInformation);

    CXlOper xloActive;
    if (xloActive.GetActiveCell()
     && xloActive.SetLongFormula(strFormula))
    {
        return TRUE;
    }
    else
    {
        CXllApp::XlMessageBox("Failed to set long formula", XlMessageBoxTypeExclamation);
        return FALSE;
    }
}

Uses

CXlOper::SetLongFormulaIntl