Unfortunately, C# is not "integrated" into office, something you no doubt found out already. I believe the next version of office allows this, but even so that will not help everyone, there are many spreadsheets out using copious VBA code there that cannot be retired, so they will lurch onward zombie-like through the years, eating the brains of those unfortunate enough to have to maintain them.
But I digress.
Basically, VBA communicates with other platforms using an object model known as COM. It does not use .NET. So, you must either use 1) a "com-callable wrapper" technology to present C# objects to VBA as if they were COM objects or 2) a "runtime-callable wrapper" used to present the Excel object model to C# as if it were a .NET library.
If you want to control C# code from your excel sheet (which is probably what you want to do) you have to pick #1. If you want to control your excel sheet from C# code, you have to pick #2. If you pick #1, you will face wretched performance. If you pick #2 you will have to deal with Excel's wretched object model.
Be assured you will have to refer to msdn.microsoft.com quite a bit if you want to do something like this. The problem isn't figuring out how to do this - Microsoft's tools make it easy. The problem is figuring how to handle horrendous performance or debugging issues. Good luck.