いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

VSTO Power Tools (Microsoft Visual Studio Tools for the Office System Power Tools v1.0.0.0)


ご存じな方は、大勢いらっしゃると思いますが
とりあえずメモメモ。


C#VSTO開発を行う際に、個人的に必須なのが
VSTO Power Tools です。この中に、開発がしやすくなるように
追加された拡張メソッドがあります。これがあるとグッとコードが
書きやすくなります。素のままで、C#で開発するとあっちこっちで
missingの嵐になります。w


以下のURLよりダウンロードできます。


後は、参照設定にて、以下の参照を追加します。

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でアクセスできるようになったりするのでその点は便利だと思います。