Workbookを操作する


//Excelを操作するためのタイプライブラリを読みこむ(Excel2000用)
#import "C:\Program Files\Microsoft Office 2000\Office\Mso9.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 2000\Office\excel9.olb" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces


//実行用のコード
void CVc_xlsbookctrlDlg::OnButton1() 
{
	COleVariant data;
	long count;
	CString sbuf, ActBokNam, BokNam, strWork;
	char buffer[10];

	using namespace Excel;
	_ApplicationPtr pXL;

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


	//ブックを追加する
	pXL->Workbooks->Add();
	pXL->Workbooks->Add();
	pXL->Workbooks->Add();


	//ブックの数を数える
	count = pXL->Workbooks->Count;
	itoa(count, buffer, 10);
	sbuf = buffer;

	//アクティブ・ブックを変更する
	data = (short)2;
	_WorkbookPtr pBook = pXL->Workbooks->Item[data];
	pBook->Activate();


	//アクティブ・ブック名の取得
	NamePtr pName = pXL->ActiveWorkbook;
	data.bstrVal = pName->GetName();
	ActBokNam = data.bstrVal;


	//ブック名の取得
	data = (short)3;
	pName = pXL->Workbooks->Item[data];;
	data.bstrVal = pName->GetName();
	BokNam = data.bstrVal;


	//結果確認のために出力
	strWork = "Active Book Name = " + ActBokNam + "\nBook 3 Name = " + BokNam + "\nBook Count = " + sbuf;
	AfxMessageBox(strWork);


	pXL->Quit();	
}