[Vidéo] Exécuter une macro à la place d’une commande Word
22 octobre 2008 Sécurité informatique
Lorsque j’ai commencé à m’intéresser au VBA sous Office 97 il y a de cela plusieurs années, j’avais remarqué par hasard qu’il est très facile d’exécuter une macro codée maison au lieu d’une commande prédéfinie de Word (comme Enregistrer, Imprimer, Gras …) lancée par l’utilisateur depuis les menus ou barre d’outils du traitement de texte.
Il suffit pour cela de créer une macro et de lui affecter le même nom qu’une commande prédéfinie de Word, pour que ses actions remplacent celles de la commande prédéfinie.
Pour connaître le nom exact d’une commande prédéfinie Word, ouvrez la boite de dialogue Macros via Outils > Macros > Macros … ou par le raccourci Alt+F8, puis dans la liste « Macros disponibles dans : » sélectionnez « Commandes Word » pour que la lise de dessus affiche la totalité des macros commandes utilisées par le traitement de texte de Redmond.
Trêve de bavardage ! Regardez la démonstration en vidéo, pour bien saisir le principe :
En attendant de poster une vidéo en meilleure qualité, vous pouvez télécharger cette version.
Pour les explications, j’ai remplacé l’action d’enregistrement normale (FichierEnregistrer) par une petite farce gentille qui selon ses humeurs (If ((Rnd * 200) Mod 4) = 0 Then) enregistre votre travail (ActiveDocument.Save) mais dans la plupart des cas prétend que le traitement de texte est tellement occupé qu’il ne peut enregistrer le document actif 🙂
Code utilisé dans l’exemple
Sub FichierEnregistrer()
On Error Resume Next
Randomize Timer
If ((Rnd * 200) Mod 4) = 0 Then
ActiveDocument.Save
Else
MsgBox ("Microsoft Word est occupé en ce moment !" + vbCrLf + "Essayez d'enregistrer votre travail plus tard ...", vbCritical)
End If
End Sub
Pour les non-initiés avec Visual Basic, ce bout de code génère un nombre pseudo aléatoire compris entre 0 et 200. L’enregistrement s’effectue au cas où ce nombre est un multiple de 4 sinon, le présumé message d’erreur s’affiche informant l’utilisateur que l’opération d’enregistrement est impossible pour le moment et l’invite à recommencer l’opération plus tard.
Si vous tenez à essayer cette manipulation chez vous, évitez de faire vos tests sur des documents importants. De préférence, utilisez des documents vierges et oubliez surtout pas de supprimer les macros que vous avez créé avant de reprendre vos activités professionnels habituelles.
Est-ce un bug ou une faille de sécurité ?
C’est ce que j’ai cru avoir découvert, moi aussi, mais j’ai vite changé d’avis lorsque, en préparant ce billet, j’ai fait une recherche sur « ce phénomène » sur l’aide de Word où je suis tombé sur ce paragraphe qui fait allusion au sujet :
Peut être que vous vous posez la même question que moi : N’est-il pas dangereux d’offrir de telles possibilités aux créateurs de macros-virus ?
A cette question, on va laisser le soin aux spécialistes de la sécurité informatique pour y répondre, en attendant vous n’avez qu’à en profiter pour améliorer votre environnement Office ou tout simplement pour rendre la vie plus dure à votre secrétaire 😉
Comments (4)
hatim
impressionnant ce truc *-:)
Nabil
Ya 7lilli (Dieu merci) ! Il y a quelqu’un qu’il l’a remarqué \:d/
Oui Hatim, je te l’accorde 😉
imane
est ce qu il y a de différence de la mise a jour de kaspersky en mode hors ligne et une mise a jour simple
Nabil
Non y a pas de différence.