Hallo, Thomas Weiland schrieb: > echt? Werden wirklich teile von VBA unterstützt? Ich dachte bisher > immer, das MS-Makros gar nicht gehen.
Doch das geht inzwischen zu Teilen. Bis vor OOo 3.0 unterstützten einzelne OOo-Distributionen dieses Feature, sowie OOo eher 'heimlich'(*) (ab ungefähr Version 2.4). Seit 3.0 wird das Ganze aber auch 'offiziell'(*) unterstützt. VBA-Unterstützung gibt es bisher jedoch nur für Calc, was jedoch einen erheblichen Vorteil bedeutet, z.B. für benutzerdefinierte Funktionen in Calc. Zum Einen ist es dort so das Du nun beispieklsweise Funktionen die auf rein nuerische Berechnungen zurückgreifen problemlos zum Laufen bekommst, zum Anderen ergibt sich aber die Möglichkeit quasi Emulationen für spezifische Calc-Funktionen/Makros zu schreiben, so das OOo mit mehr als einer FEhlermeldung reagieren kann. Ein einfaches Beispiel dafür ist: Function DATEINAME() On Error GoTo xls pfad = ThisComponent.Location teilen = Split(pfad, "/") DATEINAME = teilen(UBound(teilen)) Exit Function xls: DATEINAME = ThisWorkbook.Name End Function (Siehe Kapitel 6.7.2 der Leseprobe von: http://www.galileocomputing.de/1941) Bedenke bitte das bei diversen Makro die nicht auf das Objektmodell von Excel zuückgreifen auch in der Vergangenheit durchaus Codekoompatibilität bestand und die Makros trotzdem nicht ausgeführt werden konnten. Beispielsweise ist ein Makro wie: Sub test() Msgbox "Hello World" End Sub in VBA und StarBasic völlig Code-identisch, konnte jedoch trotzdem früher in OOo nicht ausgeführt werden. Insgesamt ist die Unterstützung von VBA in OOo natürlich noch ziemlich in der Entwicklung begriffen, für gerade benutzerdefinierte Funktionen tun sich jedoch schon heute interessante Perspektiven auf und es besteht nun die prinzipielle Möglichkeit VBA überhaupt zu nutzen, was früher ja garnicht ging. Im Übrigen wird in StarBasic nun quasi zu Teilen VBA unterstützt, da OOo-Calc VBA ansich unterstützt auch in StarBasic-Makros somit z.T. VBA-Konstrukte akzeptiert werden, z.B.: Option VBASupport 1 Sub Main Range("C1").Value = 123 End Sub (*) der Unterschied (den ich hier mit den zwei selbst vergebenen Attributen versuche zu verdeutlichen) ist dadurch kenntlich das in den Versionen (ich glaube ab OOo 2.4 sowie in ggf. auch älteren Versionen anderer Distributionen) unter Extras-Optionen kein separater Eintrag zur Aktivierung/Deaktivierung der Ausführung von VBA-Code in Calc existierte. In diesen frühen Versionen galt also die Einstellung die das Laden von Code entschied auch für dessen Ausführung, war Laden aktiviert erfolgte auch eine Ausführung des Codes, sofern das die Version bereits unterstützte. Seit 3.0 gibt es nun eine separate Option für das Laden von VBA und das Ausführen von VBA in Calc. Gruß Jörg --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org