Exporter notes et surlignements d’un fichier Word

Comme promis, le script d’exportation des commentaires d’un fichier Word.
Bon, d’abord undeux avertissements et un conseil :

  • Ce script est livé sans aucune garantie : si ça fait exploser votre ordinateur ou toute votre rue, c’est pas mon problème.
  • Ce script est offert (j’ai piqué un bout de code je sais plus où, et l’ai poussé un peu plus loin dans la direction qui m’intéressait). Mais si vous le trouvez utile, je rappelle que le bouton Flattr, en bas du billet, n’est pas que décoratif.

Et le conseil ? Ah, oui : je suis paresseux, si j’avais voulu pouvoir exporter aussi les passages surlignés (au fluo jaune, dans Word), le script aurait été beaucoup plus long à écrire. J’ai donc triché — et si vous voulez l’utiliser à fond, je vous conseille d’en faire autant :

Au lieu de surligner les passages au fluo, je les surligne à coups de… commentaires. J’explique : chaque commentaire est automatiquement associé à une zone de texte dans le fichier, par Word. Vous pouvez donc sélectionner un passage, comme vous le feriez pour le surligner et lui associer un commentaire… vide. Le passage est mémorisé comme un commentaire, même s’il semble vide. C’est tout con mais ça marche assez bien pour moi — encore mieux, si vous lui associez un raccourci clavier 😉

Le script s’exécute sur le fichier actif (celui qui est affiché au premier plan dans Word), il exporte tous vos commentaires dans un nouveau fichier, qu’il enregistre dans le même dossier que l’original, sous le même suivi de « -notes » :

Notesdocx

Ce fichier contient donc uniquement les passages surlignés/commentés, comme ceci :

Unenote
(ici, un commentaire affiché dans Pages : ce sera pareil sous Word et, j’imagine, sous Open/LibreOffice)

Chaque entrée dispose de son propre titre (utile pour les références éventuelles) qui est basé sur la date et l’heure du commentaire et du numéro que lui attribue automatiquement Word. Le tout est balisé en Markdown.

Il est facile d’y ajouter ou supprimer des infos, en suivant la doc de Microsoft sur les propriétés de l’objet commentaire

Aucune idée s’il servira à une autre personne que moi, mais je le trouve très utile — ce qui le rend carrément génial, à mon avis 😉

Le script

A placer dans le code VBA de votre modèle normal.dot ou dans tout autre modèle que vous voulez utiliser.

Sub ExportComments()
'
' Export each comment from the active document in a new file
' Add a Markdown header for each comment, based on it's date tag
' The scope (text selection where the comment was made) becomes a quote ">..."
' The comment itself, if there is any, is displayed beneath.
' Then save it in the same directory as the original Word file,
' with the suffix "-notes"
'
'' Works with Word 2010/13, on Windows
' For an OS X version, see :
' http://davidbosman.fr/blog/2014/11/15/exporter-notes-et-surlignements-dun-fichier-word-sous-os-x/
'
' David Bosman - http://davidbosman.fr
''
' That's all folks.
'
'
Dim s As String
Dim cmt As Word.Comment
Dim doc As Word.Document
Dim CommentsFile As String
CommentsFile = ActiveDocument.Path & "/" & Left(ActiveDocument.name,
Len(ActiveDocument.name) - 5) & "-notes.docx"
s = s & "# " & ActiveDocument.name & vbCr & vbCr
For Each cmt In ActiveDocument.Comments
s = s & vbCr & vbCr & "## " & cmt.Index & "(" & cmt.Date & ") :" & vbCr & ">" & cmt.Scope.Text & vbCr & vbCr & cmt.Range.Text & vbCr
Next
Set doc = Documents.Add
' Specify a readable font for my bad sight
ActiveDocument.Styles("Normal").Font.name = "Courier New"
doc.Range.Text = s
doc.SaveAs2 CommentsFile
doc.Close
End Sub