What are you using the VSTO add-in for? your life might become simpler to move everything into the Excel-DNA add-in.
I'm not sure why the Application.Caller would be different in those contexts, but you might investigate the ExcelReference object that you get from a call to
I certainly expect that to always
be the right cell.
The Application object you get in VBA is exactly the same COM object that you get from ExcelDnaUtil.Application. However, Excel might consider the
to be different whether the CalculateFull is called triggered in VBA or an Excel-DNA macro, and the
might be different for an Excel-DNA UDF or a VBA UDF.
I generally recommend that you not use the COM automation interface from inside Excel-DNA UDF functions, but I have no firm evidence of problems. (From macros, ribbon handlers etc, it should be fine.)
I don't normally expect the UDF functions to recalculate when you open a workbook. I'm not sure why or when the VBA add-in functions recalculate. I don't know the rules behind Excel's decision whether to recalculate upon opening or not - you might ask that
on StackOverflow or the Excel for Developers forum. You probably should not rely on whether a sheet recalculates on opening or not.