L’idée est la suivante (et je me demande pourquoi je ne l’ai pas eue avant) : je voulais que chatGPT m’aide à créer une macro pour Word.
Et cette idée est toujours la même que je décline encore et encore (voir par exemple L’IA pour aider, non pour remplace) : comment utiliser l’IA soit pour faire des choses que je sais faire, mais plus rapidement ? Ou encore : comment faire faire à l’IA des choses que je ne sais pas faire ou pas bien faire et qui font de celui qui passe commande une sorte de « power user » ?
Parce que oui, on peut utiliser ceci ou cela (par exemple, dans le cas qui nous préoccupe, le ruban du cartable fantastique), mais ici, on fait les choses soi-même ou – parce qu’il y a contradiction — on voit comment l’IA nous assiste dans le processus de création de fonctions taillées sur mesure.
Enfin, bref, je voulais qu’en un clic, on puisse passer d’un texte quasi illisible pour un élève dyslexique en un texte dûment formaté, c’est-à-dire avec
- Une police sans serif
- Une taille de 14px
- Un interligne de 1.5
- Un espacement entre les caractères de 0.5
- etc.
La macro fait tout ça en un clic. Mieux encore, elle aide l’enseignant qui ignorerait tout des subtilités éditoriales à rendre son document dyslexic friendly. Voici donc la macro, pour ceux que ça intéresse, et si vous n’avez jamais utilisé ou créé de macros, rappelez-vous, chatGPT sera très heureux de vous aider.
Sub FormatForDyslexia_WithFootnotes()
Dim para As Paragraph
Dim doc As Document
Dim style As Style
Dim footnote As Footnote
' Associer le document actif
Set doc = ActiveDocument
' Modifier le texte principal
For Each para In doc.Paragraphs
If Not para.Range.InlineShapes.Count > 0 Then
para.Range.Font.Name = "Arial"
para.Range.Font.Size = 14
para.LineSpacingRule = wdLineSpaceExactly
para.LineSpacing = 2 * 12 ' Interligne de 2
para.Alignment = wdAlignParagraphLeft
para.SpaceBefore = 6 ' Espacement avant
para.SpaceAfter = 6 ' Espacement après
para.Range.Font.Spacing = 0.5 ' Espacement des lettres
End If
Next para
' Modifier les titres
For Each style In doc.Styles
If style.Type = wdStyleTypeParagraph Then
If style.NameLocal = "Titre 1" Then
style.Font.Size = 24 ' Taille du titre 1
ElseIf style.NameLocal = "Titre 2" Then
style.Font.Size = 20 ' Taille du titre 2
ElseIf style.NameLocal = "Titre 3" Then
style.Font.Size = 18 ' Taille du titre 3
End If
End If
Next style
' Modifier les notes de bas de page
For Each footnote In doc.Footnotes
With footnote.Range
.Font.Name = "Arial"
.Font.Size = 12 ' Taille légèrement plus petite que le texte principal
.ParagraphFormat.LineSpacingRule = wdLineSpaceExactly
.ParagraphFormat.LineSpacing = 1.5 * 12 ' Interligne de 1,5
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.ParagraphFormat.SpaceBefore = 3 ' Espacement avant chaque note
.ParagraphFormat.SpaceAfter = 3 ' Espacement après chaque note
End With
Next footnote
' Afficher un message de confirmation
MsgBox "Le texte et les notes de bas de page ont été formatés.", vbInformation, "Formatage terminé"
End Sub