Il y a quelques jours, un lecteur a demandé s'il existait un moyen d'automatiser la création de présentations PowerPoint à partir de zéro, puis d'ajouter rapidement des diapositives à cette présentation existante. Je pensais que ce script pourrait figurer en bonne place dans la liste des macros PowerPoint les plus utiles.
Comme nous l'avons indiqué dans le passé, PowerPoint n'inclut pas d' enregistreur de macros (contrairement à Excel et Word, qui ont tous deux des enregistreurs intégrés pour Macro). Par conséquent, nous nous retrouvons avec le bon vieux Visual Basic pour Application que nous pouvons utiliser pour créer des macros simples pour automatiser PowerPoint. Il existe d'autres alternatives pour PowerPoint Automation, mais celles-ci dépassent le cadre de ce didacticiel.
Dans le court tutoriel d'aujourd'hui, nous allons passer en revue trois cas d'utilisation différents :
- Création d'une nouvelle présentation (vierge ou à l'aide d'un modèle)
- Ajouter des diapositives à une présentation existante.
- Un mélange des deux cas cités ci-dessus (Create from scratch et ajout de slides)
Commençons.
Regardez le ruban. Si vous ne voyez pas l'entrée Développeur dans le menu, avant de commencer votre codage, vous devrez activer l'onglet développeur.
Après avoir rendu le menu Développeur visible sur votre ruban, continuez et appuyez sur Developer , puis appuyez sur le bouton Visual Basic (ou continuez simplement et appuyez sur Alt + F11) pour ouvrir l'IDE Visual Basic.
VBA pour créer une présentation PowerPoint
- Dans l'éditeur VB, faites un clic droit sur VBAProject et appuyez sur Insérer .
- Sélectionnez Module .
- Collez le code suivant dans le module nouvellement créé.
Sub CreatePresentation()
Dim NewPres as Presentation
Set NewPres = Presentations.Add
NewPres.SaveAs("MyPresentation.pptx")
End Sub
- Appuyez sur Fichier puis sur Enregistrer.
- Pour exécuter votre code, appuyez sur Exécuter, puis sélectionnez Exécuter le formulaire sous/utilisateur (ou simplement F5).
- Fermez l'éditeur VB.
VBA pour insérer des diapositives
- Dans l'éditeur VB, cliquez avec le bouton droit sur VBAProject et appuyez sur Insérer.
- Sélectionnez le module
- Collez le code suivant dans le module nouvellement créé.
Sub CreateSlide()
Dim NewSlide as Slide
'This statement ads a title slide
Set NewSlide = ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
'This statement adds a blank slide in the second place
Set NewSlide = ActivePresentation.Slides.Add(Index:=2, Layout:=ppLayoutBlank)
End Sub
- Appuyez sur Fichier puis sur Enregistrer.
- Pour exécuter votre code, appuyez sur Exécuter, puis sélectionnez Exécuter le formulaire sous/utilisateur (ou simplement F5).
- Fermez l'éditeur VB.
Macro pour configurer une nouvelle présentation et ajouter des diapositives
Ce serait simplement mélanger les deux extraits décrits ci-dessus.
Sub CreatePres_AddSlides()
Dim NewPres as Presentation
Dim NewSlide as Slide
Set NewPres = Presentations.Add
NewPres.SaveAs("MyPresentation.pptx")
' Title Slide
Set NewSlide = ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
'This statement adds a blank slide in the second place
Set NewSlide = ActivePresentation.Slides.Add(Index:=2, Layout:=ppLayoutBlank)
'Save the new PowerPoint file
NewPres.SaveAs("MyPresentation.pptx")
End Sub
Ensuite, vous pouvez consulter notre didacticiel sur la création de formes par programmation dans PowerPoint avec VBA.
Générer une présentation PowerPoint à partir d'Excel
Le dernier cas est que vous souhaitez créer une présentation PowerPoint directement à partir d'une feuille de calcul Excel. Vous pouvez utiliser la même technique à partir de Word et d'autres applications Microsoft 365.
- Liez la feuille de calcul au modèle de données PowerPoint (depuis Outils>> Références)
- Insérez un bouton dans votre feuille de calcul Excel (Développeur >> Insérer, puis choisissez un bouton de commande).
- Insérez le code VBA ci-dessous dans votre projet VBA de feuille de calcul (directement dans la feuille ou dans un module VBA)
- Modifiez le script si nécessaire.
- Exécutez (appuyez sur F5) et testez le résultat.
Sub CreatePresentationFromExcel()
Dim MyPPt As PowerPoint.Application
Dim NewPres As PowerPoint.Presentation
Dim NewSlide As Slide
Set MyPPt = CreateObject("PowerPoint.Application")
Set NewPres = MyPPt.Presentations.Add
Set NewSlide = MyPPt.ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)
NewPres.SaveAs ("MyPresentation.pptx")
NewPres.Close
MyPPt.Quit
MsgBox ("Presentation saved")
End Sub
Profitez-en 🙂
Avantages d'Excel VBA PowerPoint
- L'utilisation de VBA dans Powerpoint facilite la gestion si un fichier ppt contient autant de diapositives avec un contenu énorme.
- VBA avec Powerpoint donne une touche d'automatisation même avec des fonctions limitées disponibles.
Inconvénients d'Excel VBA PowerPoint
- Nous devons sélectionner la Bibliothèque d'objets Microsoft PowerPoint 15.0 dans l'option Référence située dans l'option du menu Outil, dont nous avons besoin au début de exemple 1, chaque fois que nous exécutons le code pour PowerPoint.
Choses dont il faut se rappeler
- Enregistrez le fichier au format Macro-Enable Présentation après avoir écrit le code. Cela nous aidera à éviter de perdre le code et de l'utiliser plusieurs fois à l'avenir.
- La fonction de recodage ne fonctionnera pas ici car nous devons passer d'Excel à PowerPoint en modifiant l'interface entre les pages.
- Compilez toujours le code avant de l’exécuter. Cela vous aidera à trouver l'erreur dans le code. Ceci est très utile lorsque nous écrivons de grosses lignes de code.
- Pour exécuter et implémenter le code, nous devons ouvrir la feuille Excel avec le graphique que nous souhaitons coller dans la diapositive PowerPoint.
- Nous pouvons aligner le graphique dans PowerPoint selon nos besoins.