0

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++ にはありませんか? 私は何を間違っていますか?

4

1 に答える 1

0

わかった!

XL::OLEObjects^ xlObjs = safe_cast<XL::OLEObjects^>(xlWs->OLEObjects(Type::Missing));
xlObjs->Add(Type::Missing, "somefile.someext", false, false, Type::Missing, Type::Missing, Type::Missing, 0, 0, 20, 20);
于 2013-08-22T14:08:16.183 に答える