PowerShell

Utiliser Microsoft Word via PowerShell

Utiliser Microsoft Word via PowerShell

Il n’y a pas que le VB dans la vie ! 😉

Si vous avez besoin de réaliser des rapports plus ou moins automatiques en PowerShell, il se pourrait que cet article vous intéresse. Nous allons en effet voir comment utiliser Microsoft Word via PowerShell.

Avant d’aller plus loin, sachez qu’il ne s’agit pas de faire du Word sans passer par Word mais bien de contrôler certains comportements de Word via des commandes PowerShell. Ce type d’actions n’est donc pas transparent pour l’utilisateur puisque Word se lancera et fonctionnera de la même façon que si vous l’exécutiez manuellement. Simplement tout se déroulera de manière automatique sans que vous ayez à appuyer sur une touche du clavier ou utiliser votre souris !

Etape 1 – Lancer Word en PowerShell et créer un nouveau document vierge

Pour démarrer Microsoft Word, vous pouvez procéder comme suit :

$word = New-Object -ComObject "Word.Application"
$word.Visible = $True
$doc = $word.documents.add()

Jusque-là, le principe est très similaire à la façon dont nous avions déjà utiliser Microsoft Excel via PowerShell.

Les quelques lignes ci-dessus vous permettent de démarrer Microsoft Word, de le rendre visible (sinon il n’apparaît que dans les processus, mais aucune fenêtre n’est visible), puis de créer un nouveau document vide, bref, une feuille blanche.

Etape 2 – Insertion de données dans Word

$doc.content.text = "Computer report"
$doc.content.insertparagraphafter()
$doc.Paragraphs.item(2).range.text = "Computer name : " + $env:computername

La première ligne vous permet de commencer à écrire des données dans votre document Word.

Chaque document Word est composé de plusieurs paragraphes, vous devez donc créer ces paragraphes pour pouvoir écrire à l’intérieur de chacun.

J’insère donc un paragraphe après la mention Computer Report puis dans mon second paragraphe, le numéro 2, je récupère et affiche le nom de l’ordinateur sur lequel s’exécute le script.

Vous devriez avoir quelque-chose qui ressemble à cela :

Exemple de document Word

Etape 3 – Modifier la police d’écriture, la taille…

Bien évidemment, le sujet est vaste avant de pouvoir transcrire chaque fonctionnalité de Microsoft Word en PowerShell… Mais voyons déjà comment nous pouvons modifier en quelques lignes l’apparence de notre document Word.

$doc.Paragraphs.item(2).range.font.name = "Calibri"
$doc.Paragraphs.item(2).range.font.size = 11
$doc.Paragraphs.item(2).range.font.Italic=$True
$doc.Paragraphs.item(2).range.font.Bold=$True

Ces quelques lignes, nous permettent de choisir la police d’écriture mais aussi sa taille et éventuellement mettre l’ensemble d’un paragraphe en italique ou en gras.

Pour aller plus loin, vous pouvez consulter cet article.

Etape 4 – Enregistrement de votre fichier

Une fois que les commandes PowerShell ont terminé de créer votre document, vous pourriez bien entendu reprendre la main sur le fichier pour l’enregistrer à l’endroit que vous souhaitez… Mais cela ne serait plus automatique et surtout, si vous générez plusieurs fichiers, cela pourrait vite s’avérer pénible comme opération.

Pour enregistrer votre document, vous pouvez procéder comme suit :

$doc.SaveAs("C:\Users\Thibault\Desktop\Computer_Report.docx")
$doc.close()
$word.Quit()

Ces 3 lignes vont respectivement sauvegarder votre fichier sur le Bureau (attention, la ligne est configurée pour mon d’utilisateur), puis fermer le fichier Word courant et enfin quitter l’application Word.

Conclusion et téléchargement

Vous devriez maintenant avoir une bonne base pour contrôler assez facilement Microsoft Word via PowerShell… Vous vous en doutez les possibilités sont vastes aux vues des possibilités offertes par les 2 produits (PowerShell, Excel). A noter que dans mon cas, j’ai effectué les tests avec MS Word 2013 mais il n’y a pas de raison que ça pose des soucis sur la version 2010.

Aperçu de mon fichier Word

Comme d’habitude, vous trouverez ci-dessous en libre téléchargement un exemple de script qui récupère la configuration de votre poste dans un fichier Word :

  • Script – Lancement de Word et récupération de la configuration de la machine (téléchargeable ici : LaunchWord)
  • L’ensemble est également disponible sur GitHub.

Plus d’informations sur la communauté française numéro 1 en PowerShell en suivant ce lien.

Si vous avez des questions, n’hésitez pas ! 👍

Share
Published by
thibault

Recent Posts

Adobe Firefly Video : L’outil de génération vidéo accessible à tous

Adobe Firefly Video : L’outil de génération vidéo accessible à tous Adobe a récemment annoncé…

2 jours ago

En France, les messageries chiffrées bientôt sous surveillance : un débat entre sécurité et libertés individuelles

Les messageries chiffrées telles que WhatsApp et Signal pourraient bientôt faire face à des obligations…

2 semaines ago

TikTok et les États-Unis : Une saga entre interdictions, rachats et rebondissements politiques

Logo tikTok Depuis son lancement international en 2018, TikTok a conquis des millions d’utilisateurs à…

2 semaines ago

DeepSeek : Le nouveau titan de l’IA chinoise qui ébranle la Silicon Valley

L’écosystème de l’intelligence artificielle (IA) est en perpétuelle évolution, mais l’arrivée de DeepSeek, un modèle…

2 semaines ago

Microsoft introduit une connexion automatique controversée : quels enjeux pour votre sécurité ?

Microsoft introduit une connexion automatique controversée Microsoft semble s’engager dans une direction qui suscite la…

3 semaines ago

OpenAI dévoile Operator : ChatGPT surfe sur Internet pour vous

OpenAI dévoile Operator : ChatGPT surfe sur Internet pour vous OpenAI dévoile Operator : L’IA…

3 semaines ago