VSTO のスニペット集

このページは、VSTO (Visual Studio Tools For Office) のスニペットなどをまとめる予定のページです。

目次

注意

  • 言語は C# です。
  • コードのライセンスは CC0 (クレジット表示不要、改変可、商用可) です。

スニペット

各種オブジェクトの取得

// Application
var app = Globals.ThisAddIn.Application;
// アクティブなワークブック
var book = Globals.ThisAddIn.Application.ActiveWorkbook;
// アクティブなシート (ワークシート。ActiveSheet は dynamic 型のため、IntelliSense が効くようにするには型変換が必要)
var sheet = Globals.ThisAddIn.Application.ThisWorkbook.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
// 最初のシート (インデックスは1から始まる)
var sheet = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[1];
// Range
var range = sheet.Range["A1"];

最大行数の取得

// 1列目のセルのうち、値が入っているセルの最後の行数
var rowCount = (int)sheet.Cells[sheet.Rows.Count, 1].End(Microsoft.Office.Interop.Excel.XlDirection.xlUp).row;

コマンドボタンの追加

// 「アドイン」タブ
var menubar = Globals.ThisAddIn.Application.CommandBars["Worksheet Menu Bar"];
// コマンドボタン追加
var button = menubar.Controls.Add(Type: Microsoft.Office.Core.MsoControlType.msoControlButton) as Microsoft.Office.Core.CommandBarButton;
button.Caption = "ボタン名";
button.Style = Microsoft.Office.Core.MsoButtonStyle.msoButtonIcon;
button.FaceId = 2; // ボタンのアイコン (https://www.microsoft.com/en-us/download/details.aspx?id=50745)