Hilfe für Collabora Office 24.04
Die Funktion CompatibilityMode() steuert oder fragt den Laufzeitmodus ab. Sie wirkt sich auf den gesamten Code aus, der nach dem Setzen oder Zurücksetzen des Laufzeitmodus ausgeführt wird.
Verwenden Sie diese Funktion mit Vorsicht, beschränken Sie sie beispielsweise auf die Dokumentkonvertierung.
CompatibilityMode(Optional Aktivieren As Boolean) As Boolean
Die Funktion CompatibilityMode gibt immer den Modus zurück, der nach ihrer Ausführung aktiv ist. Das heißt, wenn es mit einem Argument aufgerufen wird, wird der neue Modus zurückgegeben. Wenn es ohne Argument aufgerufen wird, gibt es den aktiven Modus zurück, ohne ihn zu ändern.
Aktivieren: Setzt oder deaktiviert den neuen Kompatibilitätsmodus, wenn das Argument vorhanden ist.
Die Funktion CompatibilityMode bezieht sich auf Option VBASupport 1, in diesem Fall gibt sie immer True zurück. Sie hat nichts mit der Compiler-Direktive Option Compatible zu tun.
Diese Funktion kann in folgenden Situationen Auswirkungen haben oder helfen:
Gültigkeitsbereich von Variablen.
Ausführen des Befehls RmDir im VBA-Modus. In VBA werden nur leere Verzeichnisse von RmDir entfernt, während Collabora Office Basic ein Verzeichnis rekursiv entfernt.
Ändern des Verhaltens des Basisbefehls Dir. Das Verzeichnis-Flag (16) für den Befehl Dir bedeutet, dass in Collabora Office Basic nur Verzeichnisse zurückgegeben werden, während in VBA normale Dateien und Verzeichnisse zurückgegeben werden.
Farbkomponentenberechnung mit den Funktionen Rot und Blue, die ausgetauscht sind (die Funktion Green ist nicht betroffen).
Gegeben sei ein NICHT leeres Verzeichnis unter file:///home/me/Test
Sub RemoveDir
MsgBox CompatibilityMode() ' False
CompatibilityMode( True )
RmDir( "file:///home/me/Test" )
CompatibilityMode False
MsgBox CompatibilityMode ' False
End Sub
Bei CompatibilityMode( True ) gibt das Programm einen Fehler aus, ansonsten wird das Verzeichnis Test samt Inhalt gelöscht.
Ändern des Verhaltens von Dir
Sub VBADirCommand
CompatibilityMode( Enable := True ) ' Zeigt auch normale Dateien an
Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
Total$ = ""
While Entry$ <> ""
Total$ = Total$ + Entry$ + Chr$(13)
Entry$ = Dir
Wend
MsgBox Total$
CompatibilityMode Enable := False ' Zeigt nur Verzeichnisse an
End Sub