VC++6.0からExcel2007を操作するには?


yu  2008-07-24 20:24:52  No: 68781

はじめまして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の方法などどなたかご教示いただける方おられませんでしょうか?


どら  2008-07-24 22:23:21  No: 68782

そのままの意味ではないのですか?
GetFirstChild というマクロを実行するために必要な引数の数が、2002までと
2007では違うとか。

手元にOffice 2007がないので確認できませんが、Excel2007 のマクロGetFirstChild
をヘルプなどで確認してみては?


そだ  2008-07-24 23:24:12  No: 68783

COMをimportしただけでエラー出たって感じかな?
2005 Express ならコンパイル通した人がいるみたいだからVC6と相性悪いだけかも。

http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2973654&SiteID=7

サービスパック当てれば改善されるかもねぇ。
わんくまの名前ひさびさにみたなぁ


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加