Hab mir mal ein Beispiel (PlanMakerDemo) angeschaut und den Fehler gefunden

. Der Range Befehl wurde falsch übergeben. Leider ist es so, das jedes System etwas anders arbeitet.
Anbei für alle, die in C++ programmieren hier ein Beispiel:
void __fastcall TArtikelForm::Beispiel
TObject *Sender)
{
AnsiString cApplication = "Planmaker.Application";
AnsiString cWorksheet = "ActiveSheet";
AnsiString cItem = "Name"; // Die Variablennamen sind extra mal nicht angepasst, weil
AnsiString cCells = "Range"; // es in anderen Systemen anders läuft und
// es in meinem System eine Fallunterscheidung gibt.
Variant PM;
PM = CreateOleObject(cApplication);
PM.OlePropertySet("Visible", true);
try
{
Variant WorkBooks = PM.OlePropertyGet("WorkBooks");
WorkBooks.OleFunction("Add");
Variant ActiveWorkBook = PM.OlePropertyGet("ActiveWorkbook");
Variant WorkSheets = PM.OlePropertyGet(cWorksheet);
Variant WorkSheet;
WorkSheet = WorkSheets.OlePropertyGet(cItem);
WorkSheets.OleFunction("Activate");
Range = WorkSheets.OlePropertyGet(cCells,"A1","A1");
Range.OlePropertySet("Value", "Ausgabe einer SQL-Auswertung");
// Weitere Anweisungen um das Datenblatt zu füllen....
}
catch(...)
{
}
}