読者です 読者をやめる 読者になる 読者になる

#importを使わずにExcel Automation

タイトルについて、実装例を書こうかと思ったけれど、面倒臭くなったのでマイクロソフトのサポートサイトへのリンクをぽつんと貼っておきます。


MFC または #import を使用せずに C++ から Excel を自動化する方法


実装する上での注意点として、CLSIDFromProgID()に渡すProgIDがLPCOLESTR型なので、"Excel.Application"というProgID(文字列)を以下の函数を利用してBSTR型へ変換します。

#include <comutil.h>
BSTR __stdcall _com_util::ConvertStringToBSTR(const char*);

なお、この函数を利用する上で必要なlibが"Release, Debug"と文字コード種別毎に、

  • comsupp.lib
  • comsuppd.lib
  • comsuppw.lib
  • comsuppwd.lib

の四種類ありますので、必要な物をリンクさせましょう。


後は普通にIDispachのInvokeメソッド経由でプロパティやメソッドにアクセスして好きなようにプログラミングしていきましょう。


あ、そうそう。Excelに限らずOLE系のプロパティやメソッドはよくわからないので、VBA辞典などが手元にあるととても役に立ちます。