Sumário

# Função CompatibilityMode()

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.

### Sintaxe:

          CompatibilityMode(Optional Ativado As Boolean) As Boolean

### Valor de retorno:

A função CompatibilityMode sempre retorna o modo que está ativo após sua execução. Se for chamada com um argumento, retorna o novo modo. Se for chamada sem argumentos, retorna o modo ativo sem modificá-lo.

### Parâmetros:

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).

### Exemplo:

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.

### Exemplo:

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

Tópicos relacionados

Instrução Option Compatible

Instrução Rem

Modificação do escopo de variáveis em Utilizando procedimentos e funções com a função CompatibilityMode().

Instrução Option Base

Instrução Option Explicit

Instrução Option VBASupport

Instrução Option ClassModule