Ajuda do LibreOffice 7.6
A função CompatibilityMode() controla ou consulta o modo de tempo de execução. Esta função afeta todo o código executado após o modo de execução ser definido ou resetado.
Utilize este recurso com cautela, limite-se à conversão de documentos por exemplo.
CompatibilityMode(Optional Ativado As Boolean) As Boolean
CompatibilityMode function always returns the mode that is active after its execution. That is, if called with an argument, it returns the new mode; if called without an argument, it returns the active mode without modifying it.
Ativado: Ativa ou desativa o modo de compatibilidade.
A função CompatibilityMode está reacionada à Option VBASupport 1, e neste caso, sempre retorna True. Ela não está relacionada às diretivas de compilação Option Compatible.
Esta função pode afetar ou ajudar nas seguintes situações:
No escopo das variáveis.
Executar o comando RmDir no modo VBA. No VBA, somente diretórios vazios são removidos por RmDir enquanto no LibreOffice Basic a remoção é total e recursiva.
Alterar o comportamento do comando Basic Dir. O sinalizador de diretório (16) do comando Dir significa que somente são retornados diretórios no LibreOffice Basic, enquanto arquivos normais e diretórios são retornados no VBA.
Cálculos de componentes de cores com as funções Red e Blue que trocadas (a função Green não é afetada).
Dado um diretório NÃO vazio em file:///home/me/Test
Sub RemoveDir
MsgBox CompatibilityMode() ' False
CompatibilityMode( True )
RmDir( "file:///home/me/Test" )
CompatibilityMode False
MsgBox CompatibilityMode ' False
End Sub
Com CompatibilityMode( true ) o programa resulta em erro, senão o diretório Test e todo seu conteúdo é excluído.
Modificar o comportamento de Dir
Sub VBADirCommand
CompatibilityMode( Enable:=True ) ' Mostra também os arquivos normais
Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
Total$ = ""
While Entry$ <> ""
Total$ = Total$ + Entry$ + Chr$(13)
Entry$ = Dir
Wend
MsgBox Total$
CompatibilityMode Enable := False ' Mostra somente diretórios
End Sub