目次
VSTOでExcelアドインを作る方法についてのメモ。
あとは、WinFormsアプリ作る時と同じ要領で
コンポーネント配置→ダブルクリック→イベント実装すればOK
参考:[C#,Excel]visual studio tools for office(VSTO)を利用してExcelのAddInをC#で作る
using Microsoft.Office.Tools.Ribbon; using Microsoft.Office.Interop.Excel;
Cellの1つ1つにValueを代入すると、Excelの行・列の指定が毎回COM経由で行われるのでコストがかかって遅くなる。
そこで、書き換える範囲のRange.Value2プロパティにObject型の配列を代入する。
一気に代入操作ができるので、COM経由でExcelに毎回アクセスすることがなくなり、速い。
var selection = Globals.ThisAddIn.Application.Selection as Range; foreach (var cell in selection.Cells) { try { /* 適宜処理する*/ } catch { MessageBox.Show("NULL VALUE"); } }
※ 選択しているセルがない場合、Selectionプロパティはnullが返ってくることに注意。
参考: Reading Selected Cells from an excel Sheet
Range.Font.ColorIndex = 3;
ColorIndexの一覧:ColorIndexプロパティ値一覧:エクセルマクロ・Excel VBAの使い方
作成したアドインの配布方法については、以下にまとめた。
Coding/MSOffice/VSTO/配布の方法