WorkSheetを移動
//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", "RGBXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces
//処理用コード
void CXlsmovsheetDlg::OnButton1()
{
using namespace Excel;
_ApplicationPtr pXL;
COleVariant pDisp;
//Excelの起動
pXL.CreateInstance(L"Excel.Application");
pXL->Visible = TRUE;
//WorkBookを追加する
WorkbooksPtr pBooks = pXL->Workbooks;
_WorkbookPtr pBook = pBooks->Add();
//移動するシートの決定
_WorksheetPtr pSheets1 = pBook->Worksheets->Item[COleVariant((short)1)];
//-------------------------------------------------
//先頭のシートを3番目のシートの後ろへ移動
//3番目シートのDispatchを取得
_WorksheetPtr pSheets2 = pBook->Worksheets->Item[COleVariant((short)3)];
pDisp.vt = VT_DISPATCH; // --> Dispatchを使用する場合は、明示的な定義が必要
pDisp.pdispVal = pSheets2;
//シートの移動
pSheets1->Move(vtMissing, pDisp);
//結果確認のために一時停止
AfxMessageBox("一時停止");
//警告メッセージが出ないようにする
pXL->DisplayAlerts = false;
//Excelを閉じる
pXL->Quit();
pDisp.vt = VT_EMPTY;
}
[サンプル・ソース]