Bonjour,
Comme je l'explique dans mon article, le fait d'appliquer un exposant ne relève pas d'un style de caractères mais d'une fonctionnalité. Donc, quand on appelle un exposant, on n'a pas besoin de dire "si la sélection est en exposant, etc." puisque c'est le
but de la fonctionnalité.... Si on clique sur Exposant ou si on utilise le raccourci Exposant, on a un exposant.
Si on veut pouvoir annuler par le même biais, on peut ajouter la propriété wdToggle. Mais, normalement, si les styles sont correctement utilisés, il suffit, quelle que soit la modification apportées au style de la police du paragraphe en cours, d'utiliser
le raccourci clavier Ctrl+Espace.
Donc, on appuie sur Exposant (ou on utilise le raccourci), et pour revenir au texte normal, on appuie sur Ctrl+Espace.
Le problème se pose si on utilise mal les styles. Par exemple si, manuellement, je choisis un corps 24 pour un paragraphe au lieu d'utiliser un style prévu pour, quand je vais appuyer sur Ctrl+Espace, je vais revenir au style en cours et je vais donc perdre
le corps 24 mis manuellement.
Pour revenir à vos choix de Grow et Shrink, pour moi ce n'est pas bon car ce n'est pas universel. En réalité vous utilisez la fonctionnalité Exposant telle qu'elle existe mais en choisissant une taille de police plus grande. Si la taille au départ était
de 12, vous aurez 13 en exposant (et donc plus petit parce que c'est un exposant). Mais si la taille au départ était de 48, vous passez directement au 72 et là le 72 exposant risque d'être disproportionné.
Par ailleurs, la question était de savoir si on peut choisir précisément la taille et la position de l'exposant. C'est ce que fait ma macro. La propriété Scaling n'est pas appropriée même si elle existait en hauteur, car cette propriété n'agrandit pas, elle
déforme. Il suffit, comme je l'ai fait, d'appliquer un taux, c'est le principe de l'agrandissement ou de la réduction, sans déformation.
J'ai refait la macro en modulant la position car dans l'exemple que j'avais mis sur mon site, j'avais mis une valeur fixe... Chacun peut ensuite moduler... Dans ce nouvel exemple, je calcule la valeur proportionnelle de la position en fonction de la taille
de départ et la taille de l'exposant.
Et j'ai ajouté également la condition pour annuler afin d'annuler en recliquant sur la fonction ou en utilisant le raccourci Ctrl++ et non le raccourci, ce qui revient à cliquer sur Ctrl+espace.
Sub Superscript()
Dim x, x2
x = Selection.Characters(1).Font.Size
x2 = x * 0.8
With Selection
.Font.Size = x2
.Font.Position = x - x2
End With
Selection.Font.Superscript = wdToggle
If Selection.Font.Superscript = False Then Selection.Font.Reset
End Sub
Circé