Excel を COM 経由で使うなら、C# より VB の方が良いと思う

Groovy で Excel ファイルを読み込んで .properties ファイルを作成してみる - お だ のスペース
の最後に C# を使ったコードを書いたんだけどあまりに長くて .NET イケてないと思われそうなので補足。


VB.NET だと普通に遅延バインディング可能なので

C# でこんなのが

workbooks = excelApp.GetType().InvokeMember("Workbooks", BindingFlags.Public | BindingFlags.GetProperty, null, excelApp, null);

VB.NET だとこんな感じに

workbooks = excelApp.Workbooks

書けたはずです。(VB.NET の文法間違ってるかも。。)
ただ遅延バインディングはしたいので、Option Strict は off にしないとダメなはず。


あと、省略可能なパラメータも VB.NET だと省略出来ます。
COM 相互運用機能の省略可能なパラメータについて

VB.NET

Globals.Sheet1.CheckSpelling()

C#

Globals.Sheet1.CheckSpelling(missing, missing, missing, missing);

C# の missing っていうのは、 Type.Missing フィールド の事です。
たまに、省略可能なパラメータが十何個とか出てくるのがあったりするので、ここでも VB.NET の方が良いと思います。
C#4.0 でパラメータが省略出来るようになるとかって見た気がするので少しは改善されるのかも。


個人的には VB.NET ってなんかシックリこないんで殆ど使っておらず詳しく無いです。
なので、もしかしたらもっと簡単に書ける機能があるのかも知れません。