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を使うと、もっとマシなコードになります。