はじめましてVC++初心者のyuです。
VC++6.0からExcel2007を操作したいのですが、タイプライブラリを#importしてビルドするとエラーが発生します。
Excel97とExcel2002では#importして操作することは出来ました。
#importは以下のようにしております。
#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
エラー内容はmso.tlhファイルとexcel.tlhファイルで発生して、
mso.tlhファイルでは
warning: マクロ 'GetFirstChild' に指定された実引数の数が少なすぎます。
warning: マクロ 'GetNextSibling' に指定された実引数の数が少なすぎます。
error:構文エラー:','
error箇所はmso.tlhファイル内のCustomXMLNodePtr GetNextSibling ( );と
__declspec(implementation_key(1668)) CustomXMLNodePtr CustomXMLNode::GetNextSibling ( );
の2箇所です。
excel.tlhでは
warning: マクロ 'GetFirstChild' に指定された実引数の数が少なすぎます。
というエラーが発生します。
エラー内容が不明で困っております。
上記エラー内容の意味が分かる方または#importの方法などどなたかご教示いただける方おられませんでしょうか?
そのままの意味ではないのですか?
GetFirstChild というマクロを実行するために必要な引数の数が、2002までと
2007では違うとか。
手元にOffice 2007がないので確認できませんが、Excel2007 のマクロGetFirstChild
をヘルプなどで確認してみては?
COMをimportしただけでエラー出たって感じかな?
2005 Express ならコンパイル通した人がいるみたいだからVC6と相性悪いだけかも。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2973654&SiteID=7
サービスパック当てれば改善されるかもねぇ。
わんくまの名前ひさびさにみたなぁ
ツイート | ![]() |