Witam,
W C++ jestem "Newbe". Probuje sklecic program kozystajacy z Excela. To co udalo mi sie osiognac to:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Variant V, Wbk, Shts, Sht, Rng;
try
{
V = Variant::GetActiveObject("Excel.Application");
Wbk = V.OlePropertyGet("Workbooks");
}
catch (Exception &exception)
{
V = Variant::CreateObject("Excel.Application");
V.OlePropertySet("Visible", true);
Wbk = V.OlePropertyGet("Workbooks").OleFunction("Add");
}
Shts = V.OlePropertyGet("Worksheets");
int Count = Shts.OlePropertyGet("Count");
Sht = V.OlePropertyGet("Sheets",1);
AnsiString name = Sht.OlePropertyGet("Name");
Rng = Sht.OlePropertyGet("Range", "A2");
String Vart = Sht.OlePropertyGet("Range", "A2").OlePropertyGet("Value");
Edit1->Text = Rng;
OleVariant Value = Edit2->Text;
Rng.OlePropertySet("Value", Value);
ShowMessage(name + " : " + Count);
// Sht.OlePropertySet("Name", "Nowa shit"); // to działało ładnie
V.OlePropertyGet("Worksheets", 1).OlePropertySet("Name","Pierwsz sheet");
V.OlePropertyGet("Sheets", 2).OlePropertySet("Name","Drugi sheet");
// V.OlePropertyGet("Sheets","Arkusz3").OlePropertySet("Name","Trzeci sheet"); // to działało ładnie
V.OlePropertyGet("Worksheets", 2).OlePropertyGet("Range", "B5").OlePropertySet("Value", "Ala ma kota");
V.OlePropertyGet("Worksheets", 2).OleFunction("Select");
// OK. Na tej bazie można coś próbować robić, te metody działały
V = Unassigned;
}
//---------------------------------------------------------------------------
Czy ktos moze sie bawil w podobne zeczy z ykozystaniem OLE? Mozna to jakos rozwiazac prosciej (tzn odwolywac sie bezposrednio do elementow excela VBA) zamiast uzywac tych dlugich OleProperty...
Moze posiada ktos podobnie dzialajacy kod?
Prosze o wszelkie wskazowki (mile widziany kod!), jesli nie na forum to na zibibi@interia.pl
Dzieki wielkie i pozdro