@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.

The new kid on the block is the Javascript-based Office plug in app things. They're a little more constrained in what they can theoretically do, but they should at least work in a reliable way (and transistion to an Office 365 arrangement rather more seamlessly).