エクセルVBAのような操作感
Windowsフォームアプリからエクセルを起動しセルに入力する操作をやってみました。
Visual Studioを使いますが、まずプロジェクトソリューションの参照にCOMの「Microsoft Exel 11.0 Object Library」を追加します。これだけでエクセルを動作させる準備が整います。
エクセルのインスタンス化
Excel::Application^ xls = gcnew Excel::ApplicationClass();
xls->Visible = true;//エクセルの表示/非表示指定。
これで新規にエクセルファイルが作成されました。次に実際データーを入力するスペースとなるワークブックを追加します。
ワークブックを作成
Workbook^ wbook = xls->Workbooks->Add(Type::Missing);
アクティブなワークシートを作成し、その名前を変えてみます。
ワークシート名変更
Worksheet^ wSheet = static_cast<Worksheet^>(xls->ActiveSheet);
wSheet->Name = "Active Sheet 1";
実際に、リストボックスの要素がエクセルに追加されるか試します。
セルに入力するコードは簡単です。
セルに文字を入力する
wSheet->Cells[int row, int col] = "文字";
以上のコードだけでエクセルVBA感覚でエクセルが操作がきました。
これを応用して、フォームのリスボックスからエクセルにデーターをコピーするアプリをつくってみました。エクセルをバックグランド化すればかなり高速に動作するので実用性は高いと感じます。