Parcurgând comentariile, am văzut câteva întrebări ale cititorilor despre cum să lucrați cu casetele de intrare și mesaje Visual Basic în PowerPoint.
În acest tutorial, vă vom oferi cunoștințe fundamentale de bază pentru a vă ajuta să utilizați aceste capacități atunci când vă automatizați crearea prezentării.
Configurarea filei Dezvoltator
În primul rând, va trebui să activăm mediul de dezvoltator pentru PowerPoint. Urmați acest tutorial pentru a vă configura fila de dezvoltare.
În PowerPoint, accesați meniul Dezvoltator și apăsați pe Visual Basic.
În arborele proiectului, faceți clic dreapta pe prezentare, apăsați Inserare și apoi alegeți Modul. Va fi creat un nou Modul VBA, acesta este locul în care vă veți scrie codul.
Casete de mesaje în PowerPoint
Casetele de mesaje se explică de la sine, scopul lor este de a afișa câteva informații utile utilizatorului final. Scrieți următorul cod în modulul dvs.:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Apăsați F5 sau Run și vedeți rezultatul:

Exemplu de mesaje și casete de intrare
Spre deosebire de casetele de mesaje, casetele de intrare sunt folosite pentru a obține feedback de la utilizator. Să ne uităm la exemplul de mai jos. Scriptul inserează automat diapozitive noi în prezentare.
Iată ce vom implementa:
- Mai întâi vom solicita utilizatorului numărul de diapozitive de adăugat (folosind o casetă de introducere).
- Vom anunța apoi utilizatorul despre numărul de diapozitive care urmează să fie create (folosind o casetă de mesaje)
- În sfârșit, va continua și va crea diapozitivele în mod programatic.
- La sfârșit, vom salva prezentarea modificată
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
Sper că v-a ajutat, nu ezitați să lăsați comentarii după cum este necesar.
Verificați valorile returnate de la funcția MsgBox
Când apare caseta de dialog MsgBox pentru interacțiunea utilizatorului, doriți să știți pe ce opțiune a făcut clic utilizatorul, puteți utiliza următorul cod pentru a verifica asta:
Codul verifică ce buton alege utilizatorul pe MsgBox
În conformitate cu alegerea fiecărui utilizator, puteți continua să rulați diferite coduri, aceste coduri VBA, puteți învăța în cursuri VBA cu experți de top la Aflați Excel online.
MsgBox acceptă vietnameză cu accent? Răspunsul este nu, de ce? Pentru că Microsoft l-a programat așa. Dar există vreo altă cale? Răspunsul este da, puteți citi articolul Utilizarea vietnamezei accentuate cu MsgBox VBA
Tot codul din articol îl puteți vedea la Gist:
| |
Sub HeoBasicMessageBox() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online" |
| |
End Sub |
| |
|
| |
Sub HeoBasicMessageBoxWithTitle() |
| |
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
| |
End Sub |
| |
|
| |
Sub HeoBasicMessageBox2() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKAnulare + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
End Sub |
| |
|
| |
Sub HeoBasicMessageBox3() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKAnulare + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystemModal |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult1() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
|
| |
răspuns = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult2() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
|
| |
răspuns = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult3() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
|
| |
răspuns = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
Răspuns MsgBox |
| |
|
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult4() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
|
| |
răspuns = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult5() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
răspuns = MsgBox("Eroare", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult6() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
răspuns = MsgBox("Eroare", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult7() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
răspuns = MsgBox("Eroare", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult8() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
răspuns = MsgBox("Eroare", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult9() |
| |
Dim răspuns ca VbMsgBoxResult |
| |
răspuns = MsgBox("Vrei să încerci din nou?", vbRetryCancel + vbQuestion, "Eroare") |
| |
Răspuns MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult10() |
| |
MsgBox „A apărut o eroare critică”, vbCritical, „Eroare de sistem”; |
| |
End Sub |