VC++からExcelの操作

[戻る]
秀水 2005/09/20(火) 11:57:48
開発環境
WinXP SP2
VC++6.0SP6 MFC ダイアログ
Excel97

VCからExcelにデータ出力、セル書式の設定を行いたいと思っております。
そこで、過去の発言を参考に下記のコードを新規ワークスペースのダイアログcppに
追加したのですが、コンパイルエラーになってしまいます。

#pragma warning( disable : 4146)
#pragma warning( disable : 4049)

#import "C:/Program Files/Microsoft Office/Office/MSO9.DLL"
#import "C:/Program Files/Common Files/Microsoft Shared/VBA/VBA6/VBE6EXT.OLB"
#import "C:/Program Files/Microsoft Office/Office/EXCEL8.OLB" \
  rename("RGB", "RBGXL") \
  rename("ExitWindows", "WordExitWindows") \
  rename("DialogBox", "DialogBoxXL") \
  rename("DocumentProperties", "DocumentPropertiesXL")

参考にしたHP(http://www.jsdlab.co.jp/~kei/studio/excel/index.html)では
Excel97の場合、MSO8.DLL, VBEXT1.OLB, EXCEL8.OLB とすれば OK なはず とあったので
すが
MSO8.DLLとVBEXT1.OLBは存在せず、MSO9.DLLとVBE6EXT.OLBが存在したので
EXCEL8.OLBのみを変更しました。
そこで下記のようなエラーが26件発生します。

error C2039: 'CommandBarsPtr' : 'Office' のメンバではありません。
error C2146: 構文エラー : ';' が、識別子 'CommandBars' の前に必要です。
error C2501: 'CommandBarsPtr' : 識別名を宣言するのに、型が指定されていません。
error C2501: 'CommandBars' : 識別名を宣言するのに、型が指定されていません。
error C2039: 'CommandBarsPtr' : 'Office' のメンバではありません。
 :
 :

とりあえず、Excelを開いて→セルA1に値をセット→ファイルの保存
を行うプログラムを新規で作成してみようと思ったのですが、
コンパイルすら通らない状況に困り果てて、質問されていただきました。
(なぜMSO8.DLLとVBEXT1.OLBが存在せず、MSO9.DLLとVBE6EXT.OLBが存在しているのか?
 EXCEL8.OLBのみ97の指定であることに問題があるのでしょうか?)

何方かご教授いただければと思います。


以上 よろしくお願いいたします。

秀水 2005/09/20(火) 13:58:53
mso97.dll と vbeext1.olb と excel8.olb を
インポートすることでコンパイルは通るようになりました。
(OLE/COM Object Viewer を知りませんでした。ゴメンナサイ)

まだ、ファイル操作まで到達しておりませんが、
(終了時にエラーが発生する状態ですが、解析中です ^^;)

取り急ぎご報告まで。

とおり 2005/09/20(火) 17:32:22
http://www.attain-sys.com/vc/excel/vc_excel.html
とか参考になるかもです。

秀水 2005/09/21(水) 08:07:18
[[解決]]
ありがとうございました。

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