Aide Collabora Office 24.04
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.
CompatibilityMode(Optional Enable As Boolean) As Boolean
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.
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 Collabora Office 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 Collabora Office 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).
É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é.
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