[Vidéo] Exécuter une macro à la place d’une commande Word

Source photo

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 😉

4 réflexions au sujet de « [Vidéo] Exécuter une macro à la place d’une commande Word »

  1. hatim 31 octobre 2008 at 16:09

    impressionnant ce truc *-:)

  2. Nabil 31 octobre 2008 at 16:16

    Ya 7lilli (Dieu merci) ! Il y a quelqu’un qu’il l’a remarqué \:d/

    Oui Hatim, je te l’accorde 😉

  3. imane 14 novembre 2012 at 11:56

    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 14 novembre 2012 at 15:55

      Non y a pas de différence.

Laisser un commentaire

Nom *
Adresse de messagerie *
Site web

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.