VC++でMFCを使わないで新規Excelファイルを起動する


 ここでは、MFCを使用しないでExcelのタイプライブラリを使用する方法を示します。
#importにより取り込んだExcelタイプライブラリの使用する方法は、MFCを使って
作成したプロジェクトでの操作方法と変わりません。
 
 違いは、COMの初期化方法が違います。

 MFCでは、AfxOleInit で初期化をするのですが

 ここでは、CoInitialize で初期化します。


【サンプル】

このサンプルは、コンソール・アプリケーションです。

#include "stdafx.h"
#include "iostream.h"

//Excelを操作するためのタイプライブラリを読みこむ(Excel2002用)
#import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL" no_namespace rename("DocumentProperties", "DocumentPropertiesXL")   
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" no_namespace   
#import "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces
using namespace Excel;  //名前空間の定義

int main(int argc, char* argv[])
{
	int n;

	//COMを初期化
	CoInitialize( NULL );

	_ApplicationPtr pXL;

	//Excelの起動
	pXL.CreateInstance(L"Excel.Application");
	pXL->Visible = TRUE;

	//WorkBookを追加する
	WorkbooksPtr pBooks = pXL->Workbooks;
	_WorkbookPtr pBook  = pBooks->Add((long)xlWorksheet);

	cout << "Excelの起動を確認するために一時停止(処理継続 : Y)" << endl;
	cin >> n;

	//Excelを終了する
	pXL->Quit();	

	//COMを閉じる
	CoUninitialize();

	return 0;
}