Excelマクロについて

[戻る]
Funny 2009/09/11(金) 21:06:00
VCからのExcel&マクロ起動について教えてください。

他サイトを参考にExcelの起動を作成しました。
が、Excelファイルは起動できるのですが、マクロが動きません。

アプリはVS2003 Excelは2007です。

//インポート
#import "C:\\Program Files\\Common Files\\microsoft shared\\OFFICE12\\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\\Office12\\EXCEL.EXE" rename("DialogBox", 
"DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") 
no_dual_interfaces

//実際の処理
COleVariant data,data1;
using namespace Excel;
_ApplicationPtr pXL;

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

//WorkBookを追加する
WorkbooksPtr pBooks = pXL->Workbooks;
_WorkbookPtr pBook  = pBooks->Open(L"C:\\TEST\\Test.xls");

//マクロ名を格納
data.SetString("TestMacro", VT_BSTR);        //実行マクロ名
data1.SetString("テスト", VT_BSTR);            //引数

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

pXL->DisplayAlerts = FALSE;

※Excel側のマクロは引数を受け取ってメッセージボックスで表示するだけのものです。

お分りになる方いらっしゃいますか?

2009/09/13(日) 07:06:15
2007は持っていませんが

pXL->_Run2(data,data1);
の部分を
pXL->Run(data);
にしてみてはどうでしょう?

古いスレッドには追加発言できません。