マクロを実行する(#importによるタイプライブラリの読み込み)



//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


//マクロ実行用サンプル
void CXlsmacroDlg::OnButton1() 
{
    COleVariant data,data1;
    using namespace Excel;
    _ApplicationPtr pXL;

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

    //WorkBookを追加する
    WorkbooksPtr pBooks = pXL->Workbooks;
    _WorkbookPtr pBook  = pBooks->Open("C:\\Work\\BOOK2.XLS");

    //マクロ名を格納
    data.SetString("BOOK2.XLS!Test",VT_BSTR);           //実行マクロ名
    data1.SetString("テストだよ〜ん。",VT_BSTR);        //引数

    //マクロの実行。
    pXL->_Run2(data,data1);

    pXL->DisplayAlerts = FALSE;
    pXL->Quit();	
}