hi,

ich musste kürzlich ein MSExcel Makro nach OO Calc portieren. Habe schon
zuvor Makros mit Openoffice VBASupport portiert und nur minimal eingreifen
müssen, jedoch bin ich diesmal auf ein größeres Problem gestoßen.

Und zwar ging es diesmal darum, dass das Excel Makro mittels
- Application.GetSaveAsFilename, GetOpenFilename
- ThisWorkbook.Saveas, Workbooks.Open
ein anderes Workbook öffnet und sich von diesem Daten runterkopiert.

Diese Funktionen deckt VBASupport in Openoffice nicht ab, also habe ich
- com.sun.star.ui.dialogs.FIlePicker und
- com.sun.star.frame.Desktop
verwendet um ein exterenes MSExcel Workbook zu öffnen.

Das Problem welches bei mir dabei immer aufgetreten ist war, dass sobald ich
das File geöffnet hatte der komplette Excel Kontext den OO VBASupport bereit
gestellt hatte auf einmal verloren war.
Damit meine ich das ich nicht mehr auf Worksheets("sheetname") zugreifen
konnte da immer die Fehlermeldung kam das kein Workbook aktiv sei. Deshalb
konnten so ziemlich alle anderen Excel Funktionen nicht mehr aufgerufen
werden, da sie einen Excel Kontext benötigen. "Cells" kann nicht mehr
aufgerufen weil kein sheet aktiv ist, also sind keinerlei Zellenoperationen
möglich und sonst kaum etwas hat noch funktioniert.

Also gut, dann muss man doch einfach Workbooks("workbookname").Active
setzen, dachte ich zumindest. Damit lag ich aber falsch, da VBASupport die
Funktion nicht erkannt hat und ich nach stundenlangem suchen nichts gefunden
hatte womit ich dem OO Calc Dokument sagen konnte das es selbst das aktive
workbook ist.

Da das ganze relativ dringend war habe ich das Makro einfach komplett in OO
neugeschrieben. Nun habe ich etwas Zeit und wollte nachforschen.

Gibt es eine Möglichkeit den Workbook Kontext wieder zu erlangen? bzw zu
bewahren? um weiterhin VBASupport verwenden zu können?
--
------------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected] with Subject: help

Antwort per Email an