Guida di LibreOffice 25.2
La funzione CompatibilityMode() controlla o richiede informazioni sul modo in fase di esecuzione (runtime). Ha effetto su tutto il codice eseguito dopo l'impostazione o la reimpostazione del modo della fase di esecuzione.
Utilizzate questa funzione con cautela, limitatela, per esempio, alla conversione di documenti.
      CompatibilityMode(Optional Enable As Boolean) As Boolean
    La funzione CompatibilityMode restituisce sempre il modo attivo dopo la sua esecuzione. Quindi, se chiamata con argomento, restituisce il nuovo modo; se chiamata senza argomento, restituisce il modo attivo senza modificarlo.
Enable: attiva o disattiva il nuovo modo di compatibilità nel caso in cui l'argomento sia presente.
La funzione CompatibilityMode è collegata all'opzione VBASupport 1, che in tal caso restituisce sempre True. Non è invece collegata alla direttiva del compilatore Option Compatible.
Questa funzione può interessare o aiutare nelle situazioni sotto specificate:
Ambito delle variabili
Avvio del comando RmDir nel modo VBA. In VBA solo le directory vuote vengono rimosse da RmDir, mentre LibreOffice Basic le rimuove in modo ricorsivo.
Cambio del comportamento Dir di Basic. Il flag di directory (16) per il comando Dir indica che vengono restituite solo directory in LibreOffice Basic, mentre in VBA vengono restituiti normali file e directory.
Nel calcolo delle componenti dei colori le funzioni Red e Blue sono interscambiabili (La funzione Green non viene influenzata).
Specificata una directory NON vuota in file:///home/me/Test
      Sub RemoveDir
          MsgBox CompatibilityMode() ' False
      
          CompatibilityMode( True )
          RmDir( "file:///home/me/Test" )
          CompatibilityMode False 
      
          MsgBox CompatibilityMode ' False
      End Sub
   Con CompatibilityMode( True ) il programma genera un errore, altrimenti la directory Test viene eliminata con il suo contenuto.
Modifica del comportamento Dir
    Sub VBADirCommand
        CompatibilityMode( Enable := True ) ' Mostra anche file normali
        Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
        Total$ = ""
        While Entry$ <> ""
            Total$ = Total$ + Entry$ + Chr$(13)
            Entry$ = Dir
        Wend
        MsgBox Total$
        CompatibilityMode Enable := False ' Mostra solo le directory
    End Sub