.NETを使用したオフィスオートメーションの例を見るたびに、使用される言語はVB.NETです。
これは、元々、ExcelなどのOfficeアプリの自動化は、マクロでVB Scriptを使用してのみ実行でき、これらのマクロを作成したのと同じ人がVB.NETに引き寄せられる傾向があるためですか、それともOfficeオートメーションにC#を使用しない理由がありますか?
VB.NETのCreateObjectを使用するのと同じように、C#からExcelクラスをインスタンス化できるように見えます。
excel = Type.GetTypeFromProgID("Excel.Application");
Excel Automationを使用して.NETプログラムを作成する必要がある場合、どの言語を使用しますか。また、VB.NETの例がある以外に、C#を回避する理由はありますか。
編集:
Microsoft Excel Objectライブラリへの明示的な参照とExcelクラスApplicationオブジェクトの明示的なインスタンス化を使用してコードを記述し、プログラムが基本的にテストされた後、遅延バインディングを使用してアプリを実行できるようにコードを変更することを考えていました。異なるバージョンのExcel。
コードは根本的に異なりますか?
たとえば、アーリーバインディングを使用してこれを行うことができます...
var excel2 = new Microsoft.Office.Interop.Excel.Application();
excel2.Visible = true;
レイトビッドでは、このような根本的に異なるコードを使用することを余儀なくされますか?
excel = Type.GetTypeFromProgID("Excel.Application");
excel.InvokeMember("Visible", BindingFlags.SetProperty, null, excelObject, parameter);