4 façons de protéger le code VBA (Visual Basic pour Applications)

Le code VBA que vous écrivez est le cœur et l'âme de votre feuille de calcul. La protection du code VBA est une mesure à prendre pour garantir que votre code ne soit pas volé ou utilisé à votre insu. Cet article abordera différentes manières de protéger votre code VBA afin que VOUS seul puissiez y accéder facilement.
Pourquoi devriez-vous vous soucier de la protection du code VBA ?
VBA est un langage macro qui permet de créer des tâches ou des actions automatisées dans Excel, Word, PowerPoint. Il existe plusieurs raisons pour lesquelles vous devez protéger votre code VBA :
- Pour protéger votre code VBA contre toute modification accidentelle. Le code VBA est un outil puissant pour les utilisateurs d'Excel, mais il peut également être une source de frustration pour ceux qui ne l'utilisent pas. Si vous ne sécurisez pas le code VBA avec un mot de passe, d'autres personnes utilisant votre classeur peuvent accéder au code et y apporter des modifications sans savoir ce qu'elles font réellement. Vous ne voulez pas déboguer votre code VBA, car cela peut être pénible : il peut falloir des heures pour comprendre pourquoi, et encore plus de temps !
- Pour protéger votre propriété intellectuelle, le code VBA peut être très précieux pour certaines entreprises. Si quelqu'un d'autre accède à votre feuille de calcul et copie la fonctionnalité que vous utilisez, il pourrait alors la faire passer pour son propre travail et la vendre à de nombreuses entreprises. Protégez votre précieux code source avec des mesures de sécurité. Ne facilitez pas le vol ou la copie.
- Pour vous protéger des personnes qui utilisent votre travail. Si vous possédez un élément de code VBA précieux qui facilite ou rend votre travail plus efficace, vous souhaiterez peut-être le protéger pour un usage personnel uniquement.
Il est important de noter qu'il existe plusieurs façons différentes de protéger votre code VBA, mais toutes ne protègent pas votre code de la même manière. C'est à vous de décider et de ce que vous pensez être le mieux adapté à vos besoins.
#1 Protégez le code VBA par mot de passe dans Excel à l'aide de l'outil VBAProject
Cette partie explique comment vous pouvez utiliser les paramètres de protection du projet VBA pour protéger votre code VBA des regards indiscrets et des mains intrusives à un certain niveau.
- Niveau de sécurité : Faible ; Il existe des outils tels que Suppression de mot de passe VBA qui peut être utilisé pour déverrouiller le mot de passe en quelques minutes ;
- Difficulté : Facile ;
- Coût : gratuit ;
Étape 1. Sélectionnez « Visual Basic » dans le menu « Développeur » dans Excel.
Étape 2. Pour verrouiller votre projet VBA, cliquez sur « Outils » dans la barre puis sélectionnez « Propriétés du projet VBA ».
Après avoir cliqué sur cet élément de menu, vous devriez voir la boîte de dialogue suivante :
L’onglet « Général » est sélectionné par défaut, mais cliquez sur l’onglet « Protection ».
Étape 3. Cochez « Verrouiller le projet pour l’affichage », puis saisissez votre mot de passe deux fois dans ces deux cases et appuyez sur « OK ».
Étape 4. Enregistrez-le et rouvrez le fichier Excel. Vous pourrez savoir si la protection par mot de passe VBA a été correctement activée en double-cliquant sur votre projet VBA. Lorsque vous protégez votre projet VBA avec un mot de passe, cela empêchera quiconque de le modifier accidentellement.
#2 Utilisez l'obfuscation VBA pour protéger votre code macro
L'obfuscation VBA est l'art de rendre votre code VBA illisible mais toujours fonctionnel. Elle modifie vos macros existantes avec plusieurs niveaux d'obfuscation, ce qui rend difficile la compréhension de la logique sous-jacente. Les obfuscateurs VBA avancés utilisent un certain nombre de techniques d'obfuscation avancées, ce qui rend le traçage inverse et la récupération considérablement plus difficiles.
- Niveau de sécurité : Moyen ; Quelqu'un pourra toujours prendre le temps et dépenser suffisamment de ressources pour récupérer le code ;
- Difficulté : Modérée ; Selon le niveau ;
- Coût: Obfuscateur VBA gratuit /Prime;
Vous pouvez utiliser l'obscurcissement VBA en tandem avec la technique n°1, qui consiste à obscurcir d'abord puis à sécuriser le module avec un mot de passe. N'oubliez pas que l'obscurcissement est irréversible, faites donc une sauvegarde du fichier source avant de continuer. N'oubliez pas non plus que le code obscurci ne peut pas être garanti pour s'exécuter sans erreur. Veuillez le tester minutieusement avant de le publier. Utilisez une seule partie du projet pour obscurcir. Une fois le premier test d'obscurcissement du module réussi, passez au deuxième.
#3 Convertir le code VBA en bibliothèque de liens dynamiques (DLL)
Les compilateurs tels que Visual C++ et Visual Basic produisent des applications difficiles à déchiffrer. Cela est dû au fait que le code est compilé dans des fichiers exécutables ou des fichiers de bibliothèque de liens dynamiques. Nous pouvons donc également compiler le code VBA dans un fichier de bibliothèque de liens dynamiques, puis l'utiliser dans Excel.
- Niveau de sécurité : Élevé ;
- Difficulté : Modérée ;
- Coût : gratuit ;
Cette méthode de protection est fortement recommandée, mais elle n'est pas garantie à 100 %. Pour savoir comment compiler, consultez les instructions sur VbaCompiler.com : 10 étapes pour compiler du code VBA en DLL Windows native .
#4 Convertir VBA en C ou C++
La conversion de vos macros en C ou C++ est plus difficile à réaliser en rétro-ingénierie qu'en VBA. Si vous souhaitez protéger votre code, c'est la meilleure solution.
- Niveau de sécurité : Le plus élevé ; Il est presque impossible d'obtenir le code sans les droits ; Mais encore une fois, ce n'est pas garanti à 100 % ;
- Difficulté : compliqué et prend du temps ; parce que VBA et C/C++ sont des langages très différents, c'est plus difficile car vous devrez investir beaucoup d'efforts.
Conclusion
L'utilisation de macros est un excellent moyen de rationaliser le développement de fonctions avancées. Malheureusement, cela expose votre code au risque d'être volé ou copié par d'autres. L'article décrit les méthodes que vous pouvez utiliser pour empêcher d'autres utilisateurs de voler ou de falsifier votre code VBA. Veuillez noter que les protections du code VBA ne constituent pas une sécurité à toute épreuve, mais elles offrent une certaine protection contre les attaquants occasionnels.