Interop ライブラリを使用して VC++ の Excel ワークシートに OLEObject を追加するのに問題があります。コンパイラは VC++ 2010 Express です。相互運用ライブラリは Office 2007 用です。
宣言は次のとおりです。
#define XL Microsfot::Office::Interop::Excel
...
XL::Application^ xlApp;
XL::Workbook^ xlWb;
XL::Worksheet^ xlWs;
Excelを制御するコードは次のとおりです。
xlApp = gcnew XL::ApplicationClass();
xlWb = xlApp->Workbooks->Add(Type::Missing);
xlWs = safe_cast<XL::Worksheet^>(xlApp->ActiveSheet);
xlApp->Visible = true;
xlWs->Cells[1, 1] = "OMG I can put stuff in cells no problem";
//this line generates an error C2227: left of '->Add' must point to class/struct/union/generic type
xlWs->OLEObjects->Add("somefile.someext", false, false);
OLEObject を追加するために Excel でマクロ記録を行いました。これが生成される VB コードです。
ActiveSheet.OLEObjects.Add(Filename:="C:\somefile.someext", Link:=False, DisplayAsIcon:=False).Select
VB には OLEObjects への Add メソッドがありますが、C++ にはありませんか? 私は何を間違っていますか?