Voilà déjà quasiment deux semaines que je réfléchis à effectuer cette manipulation, une idée de génie m'est venue aujourd'hui : PowerPoint
Ma problématique
Depuis quelques temps, pour annonces mes publications sur ce site, je mets des liens vers mes articles sur les différents réseaux sociaux. Parmi ces réseaux sociaux, il en est un qui ne fonctionne que par des images : Instagram.
Après m'être renseigné sur les différentes manières de publication d'image sur ce réseau social, vous avez sûrement vu que je fabrique des images dans GIMP des appels à lecture avec les titres de mes articles.
Cependant, tout cela n'est pas très informatiquement "pro". En effet, je suis obligé de fabriquer chacune de mes images à la main. Il est tant de passer à de l'automatisaion pour de la publication de masse, avec les outils que j'ai sous la main !
Quel outil utiliser pourrait associer image, texte, et programmation?
Mon idée était de pouvoir demander à utilisateur au travers d'un prompt, quelques informations textuelles et de pouvoir automatiquement les placer dans une image.
Si vous connaissez un petit peu l'informatique, et si nous faisons une allusion à un logiciel de dessin, nous voyons que nous avons besoin d'un calque pour mettre l'image, d'un second calque pour mettre mon titre et enfin d'un troisième calque pour y mettre le contenu. Ceci dans l'optique d'un outil purement graphique comme dit ou Photoshop.
Une autre approche plus vectorielle proposerait d'avoir dans non pas une image mais des groupes d'objets, des objets "hétérogènes" (images, textes et pouquoi pas video)
Dans le cas qui m'interesse, celui que vous retrouverez sur
mon compte intagram, nous avons besoin d'un objet image pour mettre mon image de fond et de trois objets textuels pour y mettre mon contenu texte. L' outil doit sauvegarder ensemble dans un format image.
Enfin, et cela n'est pas des moindres, l'outil doit pouvoir être scriptable.
Mais quel outil puis-je prendre?
Après m'être remémorer un excellent stage de fin d'études dans une MJC dans laquelle j'avais développé une gestion de paie complète sur Excel, je me suis remémoré que les outils Microsoft intégraient un outil qui s'appelle VBA. C'est du Visual Basic pour application. Ce langage est intégré à toute la suite Office.
C'est donc l'outil PowerPoint, qui n'est absolument pas fait pour cela, car c'est un outil de PreAO, que je me suis tourné pour pouvoir bénéficier de l'ensemble des besoins que j'avais. En effet, d'un point de vue purement utilisateur, vous pouvez intégrer vos images, vos textes, et tout autre objet que l'interface de base de PowerPoint vous propose et enregistrer le tout en JPG.
Mais l'autre gros intérêt de cet outil, c'est son accès à VBA. J'ai donc écrit une petite macro VBA, dont le nom est très important car il permet de lancer cette macro au démarrage de votre Fichier.
Cette macro va vous demander quelques informations. Tout le reste, tout est prêt configuré dans le logiciel est dans votre fichier powerpoint une fois ces éléments renseignés, vous validez quelques boîtes de saisie, et à l'issue du dernier de la dernière validation, le fichier est généré automatiquement sur votre poste de travail. Ce fichier est au format JPEG, il ne nous reste plus qu'à le mettre en place sur les réseaux sociaux
Sub macrod1()
Set myDocument = ActivePresentation.Slides(1)
MyValue = InputBox("Veuillez saisir le titre de la future image pour Instagram", "Titre")
ActivePresentation.Slides(1).Shapes("Titre").TextFrame.TextRange.Text = MyValue
MyValue = InputBox("Veuillez saisir le Contenu de la future image pour Instagram", "Titre")
ActivePresentation.Slides(1).Shapes("Description").TextFrame.TextRange.Text = MyValue
Dim sImagePath As String
Dim sImageName As String
Dim oSlide As Slide '* Slide Object
Dim lScaleWidth As Long '* Scale Width
Dim lScaleHeight As Long '* Scale Height
On Error GoTo Err_ImageSave
sImagePath = "C:\Users\33651\Downloads\"
For Each oSlide In ActivePresentation.Slides
sImageName = MyValue & ".jpg"
oSlide.Export sImagePath & sImageName, "JPG"
Next oSlide
Err_ImageSave:
If Err <> 0 Then
MsgBox Err.Description
End If
MsgBox ("Le document est sauvegardé sur " & sImagePath & sImageName)
End Sub