Contenu

# Fonction CompatibilityMode()

La fonction CompatibilityMode() contrôle ou interroge le mode d'exécution. Cela affecte tout le code exécuté après la définition ou la réinitialisation du mode d'exécution.

Utilisez cette fonctionnalité avec prudence, limitez-la à la conversion de documents par exemple.

### Syntaxe :

          CompatibilityMode(Optional Enable As Boolean) As Boolean

### Type de renvoie :

La fonction CompatibilityMode renvoie toujours le mode qui est actif après son exécution. Autrement dit, s'il est appelé avec un argument, il renvoie le nouveau mode ; s'il est appelé sans argument, il retourne le mode actif sans le modifier.

### Paramètres :

Activer : active ou désactive le nouveau mode de compatibilité lorsque l'argument est présent.

La fonction CompatibilityMode se rapporte à Option VBASupport 1, auquel cas elle renvoie toujours True. Elle n'est pas liée à la directive du compilateur Option Compatible.

Cette fonction peut affecter ou aider dans les situations suivantes :

- Portée des variables.

- Exécuter la commande RmDir en mode VBA. Dans VBA, seuls les répertoires vides sont supprimés par RmDir tandis que LibreOffice Basic supprime un répertoire de manière récursive.

- Modification du comportement de la commande Basic Dir. L'indicateur de répertoire (16) pour la commande Dir signifie que seuls les répertoires sont renvoyés dans LibreOffice Basic, alors que dans VBA les fichiers normaux et les répertoires sont renvoyés.

- Calcul des composants de couleur avec les fonctions Red et Bleu qui sont interchangées (la fonction Green n'est pas affectée).

### Exemple :

Étant donné un répertoire NON vide dans file:///home/me/Test

          Sub RemoveDir
              MsgBox CompatibilityMode() ' False

              CompatibilityMode( True )
              RmDir( "file:///home/me/Test" )
              CompatibilityMode False

              MsgBox CompatibilityMode ' False
          End Sub

Avec CompatibilityMode( True ) le programme génère une erreur, sinon le répertoire Test et tout son contenu est supprimé.

### Exemple :

Modification du comportement de Dir

        Sub VBADirCommand
            CompatibilityMode( Enable := True )   ' Affiche aussi les fichiers normaux
            Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
            Total$ = ""
            While Entry$ <> ""
                Total$ = Total$ + Entry$ + Chr$(13)
                Entry$ = Dir
            Wend
            MsgBox Total$
            CompatibilityMode Enable := False ' Affiche uniquement les répertoires
        End Sub

Rubriques connexes

Instruction Option Compatible

Instruction Rem

Modification de la portée des variables dans Utilisation des Procédures et Fonctions avec la fonction CompatibilityMode().

Instruction Option Base

Instruction Option Explicit

Instruction Option VBASupport

Instruction Option ClassModule

Aidez-nous !