Just a quick tidbit about using the Excel object model and C# in VSTO 2005. ActiveCell.Offset (as we know it in VBA, and even VB.Net) is not there in exactly the same way with C#. The syntax for C# is:
ActiveCell.get_Offset(1,1).Value2 = 22
And of course you need to use Value2 instead of Value, it’s not like there is any choice there anyway.