Worksheetを操作する


//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 CXlssheetDlg::OnButton1() 
{
	COleVariant data;
	int shtcount;
	CString ActShtNam, ShtNam, strWork, sbuf;
	char buffer[9];

	using namespace Excel;
	_ApplicationPtr pXL;

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

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

	//Sheetの追加
	pBook->Worksheets->Add();
	pBook->Worksheets->Add();
	pBook->Worksheets->Add();

	//アクティブ・シートの変更
	data = (short)2;
	SheetsPtr pSheets = pBook->Worksheets->Item[data];
	pSheets->Select(data);

	//アクティブ・シート名の取得
	NamePtr pName = pBook->ActiveSheet;
	data.bstrVal = pName->GetName();
	ActShtNam = data.bstrVal;

	//シート名の取得
	data = (short)3;
	pName = pBook->Worksheets->Item[data];
	data.bstrVal = pName->GetName();
	ShtNam = data.bstrVal;

	//シート名の変更
	data.SetString("XXXX",VT_BSTR);
	pName->_Name = data.bstrVal;

	//シート数の取得
	shtcount = pXL->Worksheets->Count;
	itoa(shtcount, buffer, 10);
	sbuf = buffer;

	//結果確認のために出力
	strWork = "Active Sheet Name = " + ActShtNam + "   Sheet 3 Name = " + ShtNam + "   Sheet Count = " + sbuf;
	AfxMessageBox(strWork);

	//警告メッセージが出ないようにする
	pXL->DisplayAlerts  = FALSE;

	//Excelを閉じる
	pXL->Quit();

}