Inhalte

# Funktion CompatibilityMode()

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.

### Syntax:

          CompatibilityMode(Optional Aktivieren As Boolean) As Boolean

### Rückgabewert:

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.

### Parameter:

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 LibreOffice Basic ein Verzeichnis rekursiv entfernt.

- Ändern des Verhaltens des Basisbefehls Dir. Das Verzeichnis-Flag (16) für den Befehl Dir bedeutet, dass in LibreOffice 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).

### Beispiel:

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.

### Beispiel:

Ä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

Verwandte Themen

Anweisung "Option Compatible"

Anweisung Rem

Änderung des Variablenbereichs in Verwenden von Prozeduren und Funktionen mit der Funktion CompatibilityMode().

Optionen für Anweisung Base

Anweisung Option Explicit

Anweisung Option VBASupport

Anweisung Option ClassModule