En parcourant les commentaires, j'ai vu quelques questions de lecteurs sur la façon de travailler avec les boîtes de saisie et de message Visual Basic dans PowerPoint.
Dans ce didacticiel, nous fournirons une connaissance de base très basique pour vous aider à utiliser ces fonctionnalités lors de l'automatisation de la création de votre présentation.
Configuration de l'onglet Développeur
Tout d'abord, nous devons activer l'environnement de développement pour PowerPoint. Suivez ce tutoriel pour paramétrer votre onglet de développement.
Dans PowerPoint, accédez au menu Développeur et appuyez sur Visual Basic.
Dans l'arborescence du projet, cliquez avec le bouton droit sur votre présentation, appuyez sur Insérer, puis sélectionnez Module. Un nouveau module VBA sera créé, c'est l'endroit où vous écrirez votre code.
Boîtes de message dans PowerPoint
Les boîtes de message sont en quelque sorte explicites, leur objectif est d'afficher des informations utiles à l'utilisateur final. Écrivez le code suivant dans votre module :
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Appuyez sur F5 ou Exécuter et voyez le résultat :

Exemple de message et de boîte de saisie
Contrairement aux boîtes de message, les boîtes de saisie sont utilisées pour obtenir des commentaires de l'utilisateur. Regardons l'exemple ci-dessous. Le script insère automatiquement de nouvelles diapositives dans la présentation.
Voici ce que nous allons implémenter :
- Nous demanderons d'abord à l'utilisateur le nombre de diapositives à ajouter (à l'aide d'une zone de saisie).
- Nous informerons ensuite l'utilisateur du nombre de diapositives à créer (à l'aide d'une boîte de message)
- Enfin, allez de l'avant et créez les diapositives par programme.
- Enfin, nous enregistrerons la présentation modifiée
Sub CreateSlidesMessage()
Dim NumSlides As Integer
Dim MsgResult As VbMsgBoxResult
' How many slides to create
NumSlides = InputBox("Enter number of slides to create", "Create Slides")
'User confirmation
MsgResult = MsgBox("Powerpoint will create " & NumSlides & " slides. Proceed?", vbApplicationModal, "Create Slides")
'create the slides
If MsgResult = vbOK Then
For i = 1 To NumSlides
Set NewSlide = ActivePresentation.Slides.Add(Index:=i + 1, Layout:=ppLayoutBlank)
Next i
'Save the Presentation
ActivePresentation.SaveAs("Your Presentation.pptx")
MsgBox ("Presentation Saved.")
End If
End Sub
J'espère que cela a aidé, n'hésitez pas à laisser des commentaires si nécessaire.
Vérifiez les valeurs renvoyées par la fonction MsgBox
Lorsque la boîte de dialogue MsgBox apparaît pour l'interaction de l'utilisateur, vous souhaitez savoir sur quelle option l'utilisateur a cliqué, vous pouvez utiliser le code suivant pour vérifier cela :
Le code vérifie quel bouton l'utilisateur choisit sur MsgBox
En fonction du choix de chaque utilisateur, vous pouvez continuer à exécuter différents codes. Ces codes VBA, vous pouvez les apprendre dans les cours VBA avec des experts de renom sur Apprendre Excel en ligne.
MsgBox prend-il en charge le vietnamien accentué ? La réponse est non, pourquoi ? Parce que Microsoft l'a programmé comme ça. Mais existe-t-il un autre moyen ? La réponse est oui, vous pouvez lire l'article Utiliser le vietnamien accentué avec MsgBox VBA
Tout le code dans l'article que vous pouvez voir sur Gist :
| |
Sous HeoBasicMessageBox() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online" |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoBasicMessageBoxWithTitle() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoBasicMessageBox2() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKAnnuler + _ |
| |
vbCritique + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoBasicMessageBox3() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKAnnuler + _ |
| |
vbCritique + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystèmeModal |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult1() |
| |
Réponse faible comme VbMsgBoxResult |
| |
|
| |
réponse = MsgBox("Hoc Excel Online", vbOuiNon + vbCritical) |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult2() |
| |
Réponse faible comme VbMsgBoxResult |
| |
|
| |
réponse = MsgBox("Hoc Excel Online", vbOuiNon + vbQuestion) |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult3() |
| |
Réponse faible comme VbMsgBoxResult |
| |
|
| |
réponse = MsgBox("Hoc Excel Online", vbOuiNon + vbExclamation) |
| |
Réponse MsgBox |
| |
|
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult4() |
| |
Réponse faible comme VbMsgBoxResult |
| |
|
| |
réponse = MsgBox("Hoc Excel Online", vbOuiNon + vbInformation) |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult5() |
| |
Réponse faible comme VbMsgBoxResult |
| |
réponse = MsgBox ("Erreur", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult6() |
| |
Réponse faible comme VbMsgBoxResult |
| |
réponse = MsgBox ("Erreur", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult7() |
| |
Réponse faible comme VbMsgBoxResult |
| |
réponse = MsgBox ("Erreur", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult8() |
| |
Réponse faible comme VbMsgBoxResult |
| |
réponse = MsgBox("Erreur", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult9() |
| |
Réponse faible comme VbMsgBoxResult |
| |
réponse = MsgBox("Voulez-vous réessayer ?", vbRetryCancel + vbQuestion, "Erreur") |
| |
Réponse MsgBox |
| |
Fin du sous-marin |
| |
|
| |
Sous HeoMsgBoxResult10() |
| |
MsgBox "Une erreur critique s'est produite", vbCritical, "Erreur système" |
| |
Fin du sous-marin |