ExcelでHello world!
プロジェクトの作成
[ファイル]⇒[新規作成]⇒[プロジェクト]からExcelブックを選択し、プロジェクトを作成します。
新規ドキュメントを選択し、ドキュメント形式*1を「Excelマクロ有効ブック」にします。
イベントハンドラの実装
Sheet1.csのコードを表示し、セルをダブルクリックした時のイベントハンドラを実装します。
以下のコードを追加しています。
private void Sheet1_BeforeDoubleClick( Microsoft.Office.Interop.Excel.Range Target, ref bool Cancel) { MessageBox.Show("Hello world!"); }
作成したイベントハンドラを、セルをダブルクリックした時に実行されるようにするため、VSTOで生成されたコードを編集します。
VSTOで生成されたコードを開き、以下の内容を追加します。
this.BeforeDoubleClick += new Microsoft.Office.Interop.Excel. DocEvents_BeforeDoubleClickEventHandler(this.Sheet1_BeforeDoubleClick);
[デバッグ]⇒[デバッグの開始]を実行すると、以下のようにExcelが起動します。
その後、適当なセルをダブルクリックすると、ダイアログが表示されます。
セルの値を取得・設定する
次に、セルの値を取得・設定するコードを加えます。
Sheet1の構築時にセルの値を初期化します。コードは以下となります。
this.Cells[1, 1] = 0; this.Cells[1, 2] = 0; this.Cells[1, 3] = 0;
次に、セルがダブルクリックされた時に、計算を行うコードを追加します*2。
Excel.Range range1 = (Excel.Range)this.Cells[1, 1]; Excel.Range range2 = (Excel.Range)this.Cells[1, 2]; this.Cells[1, 3] = ((IConvertible)range1.Text).ToInt32(null) + ((IConvertible)range2.Text).ToInt32(null);
[デバッグ]⇒[デバッグの開始]を行うと、以下のようになります。
A1、B1のセルに、適当な値を入力します。
その後、適当なセルをダブルクリックすると、ダイアログが表示され、OKボタンを押すと、C1のセルに計算結果が表示されます。
*1:Office 2007で使用されるファイル形式の詳細については、Microsoftのページを参照してください。
*2:int.Parseを使うと、もっとマシなコードになります。