Nápověda LibreOffice 24.8
Funkce CompatibilityMode() určuje či zjišťuje režim běhu programů. Ovlivňuje, jak se bude po nastavení nebo zrušení tohoto režimu vykonávat veškerý kód.
Používejte tuto funkci opatrně, například ji omezte na převody dokumentů.
      CompatibilityMode(Optional Enable As Boolean) As Boolean
    Funkce CompatibilityMode vždy vrátí režim, který je aktivní po jejím provedení. Tj. zavoláte-li ji s argumentem, vrátí nový režim, v opačném případě vrátí aktivní režim a nezmění jej.
Enable: Je-li tento argument zadán, nastaví nebo zruší nastavení nového režimu kompatibility.
Funkce CompatibilityMode se vztahuje k možnosti Option VBASupport 1, pro kterou vždy vrátí True. Nesouvisí s direktivou kompilátoru Option Compatible.
Tato funkce může ovlivnit následující situace:
Viditelnost proměnných.
Spouštění příkazu RmDir v režimu VBA. V něm funkce RmDir odstraní pouze prázdné adresáře, zatímco LibreOffice Basic odstraní adresář rekurzivně.
Změna chování příkazu Basicu Dir. Příznak pro adresáře (16) u příkazu Dir znamená, že se v jazyku LibreOffice Basic vrátí pouze adresáře, kdežto v režimu VBA se vrátí adresáře i běžné soubory.
Výpočet složek barvy pomocí funkcí Red a Blue, které jsou odlišné. (Funkce Green není ovlivněna.)
Za předpokladu, že adresář file:///home/me/Test není prázdný
      Sub RemoveDir
          MsgBox CompatibilityMode() ' False
      
          CompatibilityMode( True )
          RmDir( "file:///home/me/Test" )
          CompatibilityMode False 
      
          MsgBox CompatibilityMode ' False
      End Sub
   S CompatibilityMode(True) nastane v programu chyba, v opačném případě bude smazání adresář Test a veškerý jeho obsah.
Změna chování funkce Dir
    Sub VBADirCommand
        CompatibilityMode( Enable := True )   ' Zobrazí také běžné soubory
        Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
        Total$ = ""
        While Entry$ <> ""
            Total$ = Total$ + Entry$ + Chr$(13)
            Entry$ = Dir
        Wend
        MsgBox Total$
        CompatibilityMode Enable := False ' Zobrazí pouze adresáře
    End Sub