XLL+ Class Library

CXlOper::SetLongFormula() Example

// Function:    SetLongFormula
// Purpose:     Paste a long formula to the current cell

//{{XLP_SRC(SetLongFormula)
    // NOTE - the FunctionWizard will add and remove mapping code here.
    //    DO NOT EDIT what you see in these blocks of generated code!
IMPLEMENT_XLLFN2(SetLongFormula, "A", "SetLongFormula", "", 
    "User Defined", "Paste a long formula to the current cell", 
    "", "appscope=1\0", 2)

extern "C" __declspec( dllexport )
BOOL SetLongFormula()
{
    XLL_FIX_STATE;
//}}XLP_SRC

    // Build a long formula:
    // ="abcde..."&"abcde..."&...

    int nChars = 200;
    int nRepeats = 4;

    char achVal1[1024];
    for (int 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 = "=" + strVal2;
    
    // Report length of formula
    CString strMsg;
    strMsg.Format("Formula Length = %d", strFormula.GetLength());
    CXllApp::XlMessageBox(strMsg, XlMessageBoxTypeInformation);

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

Uses

CXlOper::SetLongFormula