@SteveRichter: VBA exists now solely for backwards compatibility. It's a horrendously crufty language, with almost as many quirks as the actual Office Object Model itself. VSTO was an attempt to somewhat modernize things by encouraging people who were currently building horribly overcomplicated applications in VBA (I know this pain, I have to work on one from time to time!) to something closer to .NET development, but it never really took off fully. I think that is not insignificantly down to the fact the Office automation is horribly flaky, so it's borderline impossible to actually build a robust solution on it, regardless of the language.