ご存じな方は、大勢いらっしゃると思いますが
とりあえずメモメモ。
C#でVSTO開発を行う際に、個人的に必須なのが
VSTO Power Tools です。この中に、開発がしやすくなるように
追加された拡張メソッドがあります。これがあるとグッとコードが
書きやすくなります。素のままで、C#で開発するとあっちこっちで
missingの嵐になります。w
以下のURLよりダウンロードできます。
- Microsoft Visual Studio Tools for the Office System Power Tools v1.0.0.0
後は、参照設定にて、以下の参照を追加します。
Microsoft.Office.Interop.(Office製品名 Excel等).Extensions.dll
そうすると、本来C#の場合は以下のように記述しなければならない
// 1シート目の名前を取得 string name = (Application.Workbooks[1].Worksheets[1] as Excel.Worksheet).Name; // シートを保存. sheet.SaveAs("hoge.xlsx", missing, missing, missing, missing, missing, missing, missing, missing, missing);
部分が以下のように記述できるようになったりします。
using Microsoft.Office.Interop.Excel.Extensions; // 1シート目の名前を取得 string name = Application.Workbooks[1].Worksheets.Item(1).Name; // シートを保存. sheet.SaveAs("hoge.xlsx");
missingを大量に設定する必要がなくなるので、大分楽になります。
ちなみに、VisualBasicで記述すると以下のようになります。
' 1シート目の名前を取得 Dim name As String = CType(Application.Workbooks(1).Worksheets(1), Excel.Worksheet).Name ' シートを保存 sheet.SaveAs("hoge.xlsx")
Power Toolsを入れると上記のようにGenericでアクセスできるようになったりするのでその点は便利だと思います。