VS2008 MFC でエクセルファイル出力 http://support.microsoft.com/kb/308407/ja 1 MFC ダイアログベースアプリ新規作成(オートメーションをチェック) ※オートメーションのチェックを忘れたときは、アプリケーションの初期化で AfxOleInit() を呼ぶ 2 「追加」->「クラス」で、「TypeLib から MFC のクラス」を選ぶ 3 タイプライブラリで「Microsoft Excel 11.0 Object Library<1.5>」を選ぶ 4 次のインターフェースからクラスを生成 _Application, _Workbook, _Worksheet, Range, Workbooks, Worksheets 5 下記のコードでエクセル出力 // エクセルにアタッチ CApplication excel; excel.CreateDispatch(_T("Excel.Application")); excel.put_UserControl(FALSE); // ユーザ操作禁止 excel.put_DisplayAlerts(FALSE); // 上書きアラートを出さない // ブックとシートを用意 CWorkbooks wbooks; CWorkbook wbook; CWorksheets wsheets; CWorksheet wsheet; // よく使う変数を用意 COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); wbooks = excel.get_Workbooks(); wbook = wbooks.Add(covOptional); wsheets = wbook.get_Worksheets(); wsheet = wsheets.get_Item(COleVariant((long)1)); // セルにアクセス CRange cells; CRange cell; cells = wsheet.get_Cells(); cell = cells.get_Item(COleVariant((long)1), COleVariant((long)1)).pdispVal; cell.put_Value(COleVariant(), COleVariant(CString(_T("Hello")))); // ブックを保存 wbook.SaveAs(COleVariant(_T("e:sample.xls")), covOptional, covOptional, covOptional, covOptional, covOptional, 0, covOptional, covOptional, covOptional, covOptional, covOptional); // 後片付け cell.ReleaseDispatch(); cells.ReleaseDispatch(); sheet.ReleaseDispatch(); sheets.ReleaseDispatch(); book.Close(COleVariant((short)FALSE), covOptional, covOptional); books.Close(); excel.put_UserControl(TRUE); excel.Quit(); excel.ReleaseDispatch();