Conteúdo

# Função CompatibilityMode()

A função CompatibilityMode() controla ou consulta o modo de execução. Afeta todo o código executado após a definição ou redefinição do modo de execução.

Utilize esta funcionalidade com precaução, limitando-a, por exemplo, à conversão de documentos.

### Sintaxe:

          CompatibilityMode (Opcional: Enable como Booleano) como Booleano

### Tipo de retorno:

A função CompatibilityMode devolve sempre o modo que está ativo após a sua execução. Ou seja, se for chamada com um argumento, devolve o novo modo; se for chamada sem argumento, devolve o modo ativo sem o alterar.

### Parâmetros:

Ativar: Ativa ou desativa o novo modo de compatibilidade quando o argumento está presente.

A função CompatibilityMode está relacionada com a Opção VBASupport 1; nesse caso, devolve sempre True. Não está relacionada com a diretiva do compilador Option Compatible.

Esta função pode afetar ou ajudar nas seguintes situações:

- Âmbito das variáveis.

- Execução do comando RmDir no modo VBA. No VBA, o comando RmDir apenas remove diretórios vazios, enquanto o LibreOffice Basic remove um diretório de forma recursiva.

- Alteração do comportamento do comando Dir no Basic. O sinalizador de diretório (16) para o comando Dir significa que, no Basic do LibreOffice, apenas são devolvidos diretórios, enquanto que no VBA são devolvidos tanto ficheiros normais como diretórios.

- Cálculo dos componentes de cor com as funções Red e Blue, que são intercambiáveis (A função Green não é afetada).

### Exemplo:

Supondo que exista 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 apresenta um erro; caso contrário, o diretório Test e todo o seu conteúdo são eliminados.

### Exemplo:

Alterar o comportamento de Dir

        Sub VBADirCommand
            CompatibilityMode( Enable := True )   ' Mostra também os ficheiros 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 apenas os diretórios
        End Sub

Tópicos relacionados

Declaração de compatibilidade de opções

Instrução Rem

Modificação do âmbito das variáveis em Utilização de procedimentos e funções com a função CompatibilityMode().

Instrução Option Base

Instrução Option Explicit

Instrução Option VBASupport

Declaração de classe do módulo opcional

Necessitamos da sua ajuda!