This example subroutine, checkresult, checks the last Crystal Ball macro call. It uses the CB.MacroResult return value to check the status of the last call and display the appropriate message.
Sub checkresult
Select case CB.MacroResult
case cbErrNone
MsgBox "Completed OK"
case cbErrBadValue
MsgBox "Bad parameter value"
case cbErrNoForecastInCell
MsgBox "No forecast in active cell"
case cbErrNotReady
MsgBox "No simulation yet"
case cbErrNoAssumptionInCell
MsgBox "Missing assumptions in selected cell(s)"
case cbErrBadSelector
MsgBox "Bad value in parameter"
case cbErrBadCommand
MsgBox "Bad value in parameter parm_number"
case cbErrNoCBSheets
MsgBox "No worksheets with CB information to save"
case cbErrTooManyAssumptions
MsgBox "Too many assumptions"
case cbErrTooManyForecasts
MsgBox "Too many forecasts"
case cbErrBadCorrelation
MsgBox "Invalid correlation(s)"
case cbErrBadAssumption
MsgBox "Invalid assumption parameter(s)"
case cbErrCallingDLL
MsgBox "Could not find the DLL"
case cbErrUnexpected
MsgBox "An unexpected error occurred"
End Select
End Sub