VBA-Makros mit LibreOffice speichern

Wir verwenden in LibreOffice 3.3 ein älteres Excel-Dokument, um Messwerte auszuwerten. Das Dokument enthält VBA-Makros, die jedoch in dem neuen Office-Paket nur noch teilweise funktionieren. Daher möchten wir sie anpassen. Allerdings gehen sämtliche Code-Änderungen beim Speichern des Dokuments wieder verloren. Gibt es eine Möglichkeit, die geänderten VBA-Makros dauerhaft zu speichern?

In Pocket speichern vorlesen Druckansicht
Lesezeit: 1 Min.
Von
  • Ralf Nebelo

Wir verwenden in LibreOffice 3.3 ein älteres Excel-Dokument, um Messwerte auszuwerten. Das Dokument enthält VBA-Makros, die jedoch in dem neuen Office-Paket nur noch teilweise funktionieren. Daher möchten wir sie anpassen. Allerdings gehen sämtliche Code-Änderungen beim Speichern des Dokuments wieder verloren. Gibt es eine Möglichkeit, die geänderten VBA-Makros dauerhaft zu speichern?

Um Änderungen an VBA-Makros zu erhalten, muss man dieses Kontrollkästchen ausschalten und das ehemalige Microsoft-Office-Dokument im LibreOffice-Format speichern.

Dazu müssen Sie den Optionen-Dialog von LibreOffice aufrufen und in den VBA-Eigenschaften unter „Laden/Speichern“ das standardmäßig aktivierte Kontrollkästchen „Original Basic Code wieder speichern“ ausschalten. Wenn Sie das Dokument dann nicht als Excel-Arbeitsmappe, sondern als LibreOffice-Tabellendokument (*.ods) speichern, bleiben alle Makroänderungen erhalten.

Die Sache hat allerdings einen Haken: Die ehemaligen VBA-Makros werden nun als LibreOffice-Basic-Makros interpretiert, sodass sämtliche Bezüge auf das Objektmodell von Excel Fehlermeldungen auslösen. Um die Makros wieder lauffähig zu machen, müssten Sie dann VBA-übliche Schlüsselwörter wie ActiveWorkbook, Sheets oder Range durch die korrespondierenden Objektbezeichner des UNO-API ersetzen, was in vielen Fällen einer kompletten Neuprogrammierung gleichkommt. Nur einfache Makros, die ausschließlich BASIC-Anweisungen oder Windows-API-Aufrufe enthalten, funktionieren ohne Änderung weiter. Wer nun glaubt, dass er das Makro-Dilemma ganz clever lösen kann, indem er das LibreOffice-Tabellendokument einfach wieder als Excel-Arbeitsmappe speichert, sei gewarnt: Man verliert dabei nicht nur die Änderungen, sondern den vollständigen Makro-Code. ()