Pierre Morsa

ce bon vieux blog

Réflexions de comptoir

Comment lancer une macro Visual Basic depuis AppleScript

Il est possible de lancer une macro Visual Basic depuis un script AppleScript. Comme souvent, il n’y a pas vraiment d’exemple, il faut donc tâtonner pour trouver comment cela marche. Aussi pour vous éviter la galère je vous donne la méthode.

Dans l’exemple ci-dessous, j’utilise AppleScript pour lancer une macro Visual Basic qui prend deux nombres comme paramètres.

	tell application "Microsoft PowerPoint"
		run VB macro macro name "SetShapePosition" list of parameters {200, 100}
	end tell

Un exemple concret : lancer une macro Visual Basic depuis Keyboard Maestro

Visual Basic est beaucoup, beaucoup, beaucoup plus performant qu’AppleScript pour exécuter des actions dans PowerPoint, comme par exemple ajouter une forme sur chaque slide. C’est donc le langage que j’utilise en priorité pour créer des automatisations. De l’autre côté, Keyboard Maestro permet de créer des palettes de commandes parfaitement intégrées à l’interface du Mac. Grâce à la commande AppleScript « run VB macro » je peux faire communiquer les deux facilement.

1. Créer la macro à déclencher dans PowerPoint

Voici par exemple deux macros Visual Basic. La première, CopyShapePosSize, copie la position et la taille de l’objet sélectionné. La deuxième « colle » la position et la taille copiée à l’objet sélectionné. C’est génial si par exemple vous devez avoir plusieurs zones de texte avec exactement la même taille et position sur toute une série de slides.

N’oubliez pas de déclarer les variables « Public » au début, car ce sont elles qui vont se « souvenir » de la taille et de la position des objets sélectionnés.

En théorie, il est même possible de sélectionner plusieurs objets : on sélectionne A, B et C (dans cet ordre), on copie leurs positions et leurs tailles, puis ont sélectionne D, E et F et D hérite de la position et taille de A, E de B et F de C, mais je ne suis pas sûr que ça marche bien, car je ne l’utilise jamais et du coup je ne l’ai jamais vraiment testé à fond.

Public pLeft() As Single
Public pTop() As Single
Public pWidth() As Single
Public pHeight() As Single
Public pCount As Integer

' CopyShapePosSize
Sub CopyShapePosSize(theParam As String)
    Dim theShape As Shape
    
    ReDim Preserve pPPSSTextAlignHorizontalYes(pPPSSStylesCount)
    
    theCount = ActiveWindow.Selection.ShapeRange.Count
    ReDim pLeft(theCount)
    ReDim pTop(theCount)
    ReDim pWidth(theCount)
    ReDim pHeight(theCount)
    pCount = theCount
    
    For i = 1 To theCount
        Set theShape = ActiveWindow.Selection.ShapeRange(i)
        pLeft(i) = theShape.Left
        pTop(i) = theShape.Top
        pWidth(i) = theShape.width
        pHeight(i) = theShape.height
    Next
    
End Sub


' PasteShapePosSize
Sub PasteShapePosSize(theParam As String)
    Dim theShape As Shape
    
    theCount = ActiveWindow.Selection.ShapeRange.Count
    If theCount > pCount Then
        theCount = pCount
    End If
    
    If theCount > 0 Then
        For i = 1 To theCount
            Set theShape = ActiveWindow.Selection.ShapeRange(i)
            theShape.Top = pTop(i)
            theShape.Left = pLeft(i)
            theShape.width = pWidth(i)
            theShape.height = pHeight(i)
        Next
    End If
    
End Sub

2. Créer la macro de déclenchement dans Keyboard Maestro

Voici un exemple de ce à quoi peut ressembler la palette dans Keyboard Maestro. On sélectionne un objet A dans PowerPoint, puis on clique sur Copy position and size. Puis on sélectionne un objet B et on clique sur paste position and size. Magie, la position et la taille de l’objet B sont exactement les mêmes que celles de l’objet A !

Keyboard Maestro Powerpoint Palette

Pour arriver à ce résultat, commencez par créer une « palette » qui sera active uniquement dans PowerPoint.

Keyboard Maestro Powerpoint Palette Step 1

Ensuite, créez les deux macros qui vont lancer CopyShapePosSize et PasteShapePosSize. Voici l’exemple pour la macro qui lance CopyShapePosSize, mais c’est exactement la même chose pour l’autre macro.

Keyboard Maestro Powerpoint Palette Step 2

Et voilà, fini de galérer à essayer d’aligner chaque élément manuellement pour qu’ils soient identiques sur tous les slides. De toute façon, pour diverses raisons, avec PowerPoint c’est impossible de garantir que la position et la taille sont parfaitement identiques en essayant de le faire manuellement. Cette macro règle le problème.

Le nombre de possibilités est pratiquement infini. J’ai des dizaines de macros similaires qui permettent de gagner un temps fou.

Articles liés

Trop important pour être formé sur PowerPoint

Combien de consultants et de cadres passent littéralement des années de leur vie professionnelle sur PowerPoint ? Pourtant, combien d’entre eux ont suivi une formation pour utiliser PowerPoint efficacement ? Pratiquement aucun. Un consultant a besoin de formation en stratégie, en management, en communication. Mais PowerPoint ? Vous voulez rire ? Pourquoi pas des cours d’informatique ou de dactylo tant qu’on y est ?

Et pourtant… Lorsqu’on sait taper à dix doigts, que l’on n’est pas bloqué par les petits tracas informatiques, et que l’on sait correctement utiliser PowerPoint (utilisez les masques de diapositives au lieu d’aligner chaque élément à la main !!!), créer une présentation PowerPoint prend littéralement deux fois moins de temps.

Laissez-moi le dire autrement. Au lieu de mettre 2 jours pour créer une présentation, le consultant mettrait 1 jour et gagnerait 1 jour de vacances gratuit. Pas mal non ?

Articles liés

Les sept lois de Murphy des événements TEDx

Vous avez déjà peut-être assisté à un événement TEDx. Vous pouvez avoir l’impression que tout se passe toujours comme prévu. Mais ce n’est pas vraiment le cas. Ce n’est même jamais le cas. Voici les sept lois de Murphy d’une soirée TEDx, liste forcément incomplète et biaisée par mon point de vue de coach.

Première loi : la scène ne sera pas prête avant le début des répétitions du jour J. Vous pouvez croire que la scène sera prête pour les répétitions. Tout le monde peut vous avoir garanti que la scène sera prête. Mais non, la scène ne sera pas prête avant de démarrer les répétitions. Entre les techniciens aux horaires très stricts, la mise en place du décor, les tests son et lumière et le reste, il reste toujours un truc à régler pendant les répétitions. Il vaut mieux en tenir compte le jour J.

Deuxième loi : vous aurez des slides au dernier moment. Les 10 emails de rappel, les consignes strictes, rien n’y fera. Certains intervenants vous donneront leurs slides définitifs au dernier moment. Prévoyez une personne 100 % dédiée aux slides le jour J.

Troisième loi : (au moins) un intervenant ne sera pas prêt. Par panique, par stress, parce qu’il n’aura pas pu voulu se préparer correctement. Pas de panique. Même si personne ne vous le dit, cela arrive dans tous les événements TEDx, et même à TED. Mettez-le en confiance, assurez-vous qu’il ne dépasse pas son temps, et faites en sorte qu’il assure au moins le service minimum.

Quatrième loi : la télécommande des slides marchera pendant les répétitions, pas pendant l’événement. Eh oui. J’ai vu cela se produire sur plusieurs événements. La raison ? La distance entre la régie et la scène est parfois de plusieurs dizaines de mètres, et la portée de la télécommande est à la limite. Cela fonctionne pendant les répétitions, car la salle est vide. Mais une fois remplie, avec toutes les personnes et leurs téléphones mobiles, les perturbations suffisent pour couper le signal de la télécommande entre la scène et la régie. La meilleure solution est de s’assurer que le récepteur du signal (le petit dongle que l’on branche sur l’ordinateur) est suffisamment proche de la scène. Personnellement, je suis un grand partisan des régies situées près de la scène plutôt qu’en fond de salle ou dans un local déporté.

Cinquième loi : le minuteur va perturber au moins un intervenant. On pense souvent bien faire en utilisant un minuteur. Mais en réalité si les intervenants se sont bien préparés il y a peu de risques de débordement. N’oubliez pas de bien briefer les intervenants pour leur expliquer que s’ils dépassent un petit peu, ce n’est pas grave. C’est en tout cas mieux que de commencer à stresser et à accélérer son débit pour terminer dans les temps.

Sixième loi : un micro va tomber en panne. Ne me demandez pas pourquoi. Même si tous les micros semblent tous pareils, même si vous avez mis des piles neuves dans tous les micros, même s’ils fonctionnaient tous avant, il y en a un qui va foirer. Il faut toujours prévoir au moins un micro de rechange.

Septième loi : shit happens. Un intervenant se casse la figure sur scène. Ou oublie totalement son texte. Ou se met à poil. Ou part dans un délire sur un complot mondial entre les extraterrestres et les chiens. Encore une fois, vous ne serez pas le seul événement où cela se sera produit. Une fois que vous avez pris la responsabilité de laisser la scène à un intervenant, il faut le laisser finir, sans le laisser dépasser le temps imparti. Si ses propos ou son contenu étaient inacceptables, le dire clairement après l’intervention. Utiliser son bon sens pour limiter les dommages. Voir à ce sujet cet article.

Si vous avez des anecdotes amusantes en tant qu’organisateur d’événement TEDx, vous pouvez m’en faire part par email.

Articles liés

Le client est roi…

Le problème, c’est qu’un client roi a le pouvoir. Il a le pouvoir de faire réussir… ou de détruire une entreprise.

Prenons l’exemple de l’iPhone. Si Apple avait écouté le client, ils auraient laissé la prise casque. Ils auraient mis une batterie qui tient 1 mois. Ils auraient laissé les utilisateurs installer ce qu’ils voulaient en dehors de l’App Store. Ils auraient laissé de larges bordures autour de l’écran. Ils auraient ajouté un lecteur de carte mémoire. Et ils auraient obtenu un produit invendable, trop lourd et trop peu sécurisé. Si Apple avait écouté ses clients, elle se serait suicidée en créant un produit invendable.

De nombreux éditeurs de logiciel ont également pu en faire l’expérience. « On s’en fiche des nouvelles fonctionnalités, tout ce qu’on veut, c’est que le logiciel soit plus stable ! » Une fois la nouvelle version disponible, aucun utilisateur ne l’achète car il n’y a aucune nouvelle fonctionnalité. À l’inverse, les développeurs qui se retrouvent à accepter toutes les demandes des clients se retrouvent rapidement avec une bouse impossible à maintenir.

Le problème est le même pour les agences web, les designers, les architectes, etc. Dans tous les cas, le résultat obtenu sera meilleur si le pouvoir n’est pas donné à un client roi, mais à la personne qui a la meilleure vision de l’objectif à atteindre et les compétences pour l’exécuter.

Articles liés

Quelle est la différence entre un mauvais slide et un sac poubelle ?

Quelle est la différence entre un mauvais slide et un sac poubelle ? Réponse : y en a pas. On les remplit au maximum, et quand ils sont pleins on écrase tout pour les remplir encore plus.

Bon, il n’y a pas que les consultants qui ont ce travers. J’ai mis ça juste pour avoir plus de clics. Ce qui est intéressant, c’est de se demander pourquoi. Quelle est l’origine de ce réflexe quasi reptilien qui nous pousse à remplir les slides au maximum ? Pourquoi cette peur du vide ?

À mon avis (et c’est juste mon avis, je ne pense pas qu’il y ait eu d’études sur le sujet), nous ne faisons que reproduire ce que nous avons appris à faire à l’école. L’école nous a appris à avoir peur de la page blanche. L’école nous a appris à préférer la quantité sur la qualité. Personnellement, j’ai vite réalisé que les bons élèves, ceux qui avaient des meilleures notes que moi, rendaient des copies qui étaient systématiquement plus longues que les miennes.

Faire long, dense et exhaustif est payant à l’école (et, m’a-t-on dit, en SEO). On démontre l’étendue son savoir, que l’on a bien appris la leçon. Et on sécurise sa note. Faire concis et aller à l’essentiel, c’est au contraire prendre un risque. En a-t-on mis assez ? Le professeur (qui n’a sûrement pas envie de se taper des copies qui n’en finissent pas) va-t-il trouver ma réponse suffisante ? Face à ce dilemme, le choix est vite fait : il faut écrire le plus possible.

Et pourtant, être capable de donner une réponse complète et concise demande un vrai savoir-faire, mais qui n’est pratiquement jamais valorisé à l’école. Face au slide, nous ne faisons que reproduire ce comportement. Nous essayons de réduire le risque perçu, l’incertitude, notre peur de l’inconnu en remplissant le slide jusqu’à ce qu’il soit plein à craquer. En oubliant de nous demander ce qui est réellement utile et essentiel. Et ce faisant nous rendons notre présentation plus difficile à lire, plus confuse et nous en réduisons l’impact.

Alors, arrêtons de remplir chaque millimètre carré de nos slides. Mettons le savoir-faire en lumière en ne mettant que l’essentiel. Supprimons les détails superflus et illisibles qui n’apportent rien. N’ajoutons pas d’images juste pour remplir l’espace vide. Ce sont les clients qui nous diront merci.

Articles liés