Hi,
The recalculation of your function in the function wizard is standard,
and is not affected by the volatile setting at all.
Your function can check whether it is being called from the function
wizard by calling ExcelDnaUtil.IsInFunctionWizard(). A VB example is:
Function SlowFunction(val)
If ExcelDnaUtil.IsInFunctionWizard() Then
SlowFunction = "#IN WIZARD"
Else
SlowFunction = val * 2
End If
End Function
Note that the IsInFunctionWizard() call itself has some overhead
(maybe 1ms), so you should only use it for functions that are quite
slow (take at least a few tens of milliseconds to calculate). For fast
function you are better off having them recalculated in the wizard as
they are inserted, with some parameter validation to deal with the
partial parameters being entered.
Regards,
Govert