Função CompatibilityMode()
A função CompatibilityMode() controla o modo de execução e afeta todo o código subsequente.
Utilize esta função com cuidado, limite-a às situações de conversão de documentos por exemplo.
A instrução Option Compatible ativa a compatibilidade VBA no nível do módulo para o interpretador do LibreOffice Basic.
Esta função pode afetar ou ajudar nas seguintes situações:
Criar enumerações com a Instrução Enum
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.
A função CompatibilityMode() pode ser necessária quando recorrer aos modos do compilador Option Compatible ou Option VBASupport.
CompatibilityMode(True | False)
Dado um diretório NÃO vazio em file:///home/me/Test
Sub RemoveDir
CompatibilityMode( true )
RmDir( "file:///home/me/Test" )
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( 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$
End Sub