Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Makro von C++ aus erzeugen

Excel Makro von C++ aus erzeugen
01.09.2004 14:09:20
C++
Hallo
Ich habe per OLE in C++ ein leeres Excel-Dokument erzeugt, nämlch so:
Variant V = Variant::CreateObject("Excel.Application");
V.OlePropertySet("Visible", true);
V.OlePropertyGet("Workbooks").OleProcedure("Add");
Nun hatte ich ein Makro geschrieben und exportiert, was in diese leere Datei hinein importiert werden soll. In VBA würde man das ja mit
Workbooks("Mappe1.xls").VBProject.VBComponents.Import("\Modul1.bas")
machen. Um das von C++ aus zu bewirken müsste das doch eigentlich so gehen:
V.OlePropertyGet("Workbooks","Mappe1.xls").OlePropertyGet("VBProject").OlePropertyGet("VBComponents").OleFunction("Import","\Modul1.bas");
Es geht aber nicht, es kommt eine Exception. Hat jemand so etwas schon mal gemacht und weiß wo mein Fehler liegt? Oder gibt es einen VBA-Befehl, mit dem man den Code direkt als neues Makro hineinschreiben kann?
Danke im Voraus für die Hilfe!
Tobias Neubert

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Makro von C++ aus erzeugen
C++
Hallo Tobias,
wurde die Datei schon gespeichert?
Vor dem Speichern hat die neue Mappe noch nicht die Endung ".xls".
Vielleicht funktioniert:
V.OlePropertyGet("Workbooks","Mappe1").OlePropertyGet...
Gruß
Gerd
AW: Excel Makro von C++ aus erzeugen
01.09.2004 14:56:45
C++
Danke für den Tipp,
hab's probiert und es ist leider immer noch der gleiche Fehler aufgetreten.
Gibt es sonst noch Möglichkeiten?
AW: Excel Makro von C++ aus erzeugen
C++
Funktioniert das Erzeugen der Datei überhaupt?
Workbooks.Add wird im VBA-Objektkatalog als Funktion angegeben.
Müßte es da nicht
V.OlePropertyGet("Workbooks").OleFunction("Add");
heißen?
Aus einem Beispiel im Internet:
Excel=Variant::CreateObject("Excel.Application");
ExcelBook=Excel.OlePropertyGet("WorkBooks");
ExcelSheet=ExcelBook.OleFunction("Add");
ExcelBook=Excel.OlePropertyGet("ActiveWorkBook");
Gruß
Gerd
Anzeige
AW: Excel Makro von C++ aus erzeugen
01.09.2004 15:47:45
C++
Ja, die leere Datei wird geöffnet und es Funktioniert mit Procedure genauso wie mit Function. Bei deinem Codebeispiel passiert dagegen gar nichts, obwohl ich das auch nicht ganz verstehe.
Ich kann auch ein Makro über OLE ausführen, wenn es in der geöffneten Datei schon drin ist. Wiegesagt: Nur das Makro in eine leere Datei hineinzubekommen ist das Problem.
Gruß: Tobias
P.S.: Diesmal nutze ich die Name-Zeile nicht für den Betreff ;-)

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige