Revisant els comentaris, he vist un parell de preguntes dels lectors sobre com treballar amb Visual Basic entrades i quadres de missatges a PowerPoint.
En aquest tutorial us proporcionarem uns coneixements bàsics bàsics per ajudar-vos a utilitzar aquestes capacitats a l'hora d'automatitzar la creació de presentacions.
Configuració de la pestanya Desenvolupador
En primer lloc, haurem d'habilitar l'entorn de desenvolupador per a PowerPoint. Seguiu aquest tutorial per configurar la vostra pestanya de desenvolupament.
A PowerPoint, aneu al menú Desenvolupador i premeu Visual Basic.
A l'arbre del projecte, feu clic amb el botó dret a la vostra presentació, premeu Insereix i, a continuació, seleccioneu Mòdul. Es crearà un nou mòdul VBA, aquest és el lloc on escriureu el vostre codi.
Caixes de missatges a PowerPoint
Els quadres de missatges s'explicaran per si mateixos, el seu objectiu és mostrar informació útil a l'usuari final. Escriviu el codi següent al vostre mòdul:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Premeu F5 o Executar i vegeu el resultat:

Exemple de bústia de missatges i d'entrada
A diferència dels quadres de missatges, els quadres d'entrada s'utilitzen per obtenir comentaris de l'usuari. Vegem l'exemple següent. El guió insereix automàticament noves diapositives a la presentació.
Això és el que implementarem:
- Primer demanarem a l'usuari el nombre de diapositives que cal afegir (utilitzant un quadre d'entrada).
- A continuació, notificarem a l'usuari el nombre de diapositives que s'han de crear (amb un quadre de missatges)
- Per últim, seguirà endavant i crearà les diapositives amb programació.
- Per últim desarem la presentació modificada
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
Tant de bo t'hagi ajudat, no dubteu a deixar els comentaris que calgui.
Comproveu els valors retornats per la funció MsgBox
Quan aparegui el quadre de diàleg MsgBox per a la interacció de l'usuari, voleu saber quina opció ha fet clic l'usuari, podeu utilitzar el codi següent per comprovar-ho:
El codi comprova quin botó tria l'usuari a MsgBox
Corresponent a l'elecció de cada usuari, podeu continuar executant codis diferents, aquests codis VBA, podeu aprendre en cursos de VBA amb experts destacats a Aprèn Excel en línia.
MsgBox admet el vietnamita amb accent? La resposta és no, per què? Perquè Microsoft ho va programar així. Però hi ha alguna altra manera? La resposta és sí, podeu llegir l'article Ús del vietnamita accentuat amb MsgBox VBA
Tot el codi de l'article el podeu veure a 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", _ |
| |
vbOKCancel + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbApplicationModal |
| |
End Sub |
| |
|
| |
Sub HeoBasicMessageBox3() |
| |
MsgBox "Hoc Excel Online", _ |
| |
vbOKCancel + _ |
| |
vbCritical + _ |
| |
vbDefaultButton1 + _ |
| |
vbSystemModal |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult1() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
|
| |
resposta = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult2() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
|
| |
resposta = MsgBox("Hoc Excel Online", vbYesNo + vbQuestion) |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult3() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
|
| |
resposta = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
| |
Resposta de MsgBox |
| |
|
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult4() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
|
| |
resposta = MsgBox("Hoc Excel Online", vbYesNo + vbInformation) |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult5() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
resposta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult6() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
resposta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult7() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
resposta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult8() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
resposta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult9() |
| |
Resposta atenuada com a VbMsgBoxResult |
| |
resposta = MsgBox("Vols tornar-ho a provar?", vbRetryCancel + vbQuestion, "Error") |
| |
Resposta de MsgBox |
| |
End Sub |
| |
|
| |
Sub HeoMsgBoxResult10() |
| |
MsgBox "S'ha produït un error crític", vbCritical, "Error del sistema" |
| |
End Sub |