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)
- UI の追加は Office リボンをカスタマイズ – パート3 – (VSTO ビジュアルなデザイナーでカスタマイズ) のようにビジュアルデザイナーを使うほうが簡単です。