Al revisar los comentarios, he visto un par de preguntas de los lectores sobre cómo trabajar con cuadros de entrada y mensajes de Visual Basic en PowerPoint.
En este tutorial, proporcionaremos un conocimiento básico muy básico para ayudarlo a usar esas capacidades al automatizar la creación de su presentación.
Configuración de la pestaña Desarrollador
En primer lugar, necesitaremos habilitar el entorno de desarrollo para PowerPoint. Siga este tutorial para configurar su pestaña de desarrollo.
En PowerPoint, vaya al menú Desarrollador y presione Visual Basic.
En el árbol del proyecto, haga clic derecho en su presentación, presione Insertar y luego elija Módulo. Se creará un nuevo Módulo VBA, ese es el lugar en el que escribirá su código.
Cuadros de mensaje en PowerPoint
Los cuadros de mensaje se explican por sí mismos, su objetivo es mostrar información útil para el usuario final. Escribe el siguiente código en tu Módulo:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Pulse F5 o Ejecutar y vea el resultado:

Ejemplo de mensaje y cuadro de entrada
A diferencia de los cuadros de mensaje, los cuadros de entrada se utilizan para obtener comentarios del usuario. Veamos el ejemplo a continuación. El guión inserta automáticamente nuevas diapositivas en la presentación.
Esto es lo que implementaremos:
- Primero le pediremos al usuario la cantidad de diapositivas que desea agregar (usando un cuadro de entrada).
- Luego, notificaremos al usuario sobre la cantidad de diapositivas que se crearán (usando un cuadro de mensaje)
- Por último, seguirá adelante y creará las diapositivas mediante programación.
- Por último, guardaremos la presentación 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
Con suerte, eso ayudó, siéntase libre de dejar comentarios según sea necesario.
Verifique los valores devueltos por la función MsgBox
Cuando aparece el cuadro de diálogo MsgBox para la interacción del usuario, desea saber en qué opción hizo clic el usuario, puede usar el siguiente código para verificarlo:
El código verifica qué botón elige el usuario en MsgBox
De acuerdo con la elección de cada usuario, puede continuar ejecutando diferentes códigos; estos códigos VBA los puede aprender en cursos de VBA con los principales expertos en Aprenda Excel en línea.
¿MsgBox admite vietnamita con acento? La respuesta es no, ¿por qué? Porque Microsoft lo programó así. ¿Pero hay alguna otra manera? La respuesta es sí, puedes leer el artículo Usando vietnamita con acento con MsgBox VBA
Todo el código del artículo lo puedes ver en Gist:
|
SubHeoBasicMessageBox() |
|
MsgBox "Xin chao cac ban da den voi Hoc Excel Online" |
|
Subtítulo final |
|
|
|
SubHeoBasicMessageBoxWithTitle() |
|
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
|
Subtítulo final |
|
|
|
SubHeoBasicMessageBox2() |
|
MsgBox "Hoc Excel Online", _ |
|
vbOKCancelar + _ |
|
vbCrítico + _ |
|
vbDefaultButton1 + _ |
|
vbAplicaciónModal |
|
Subtítulo final |
|
|
|
SubHeoBasicMessageBox3() |
|
MsgBox "Hoc Excel Online", _ |
|
vbOKCancelar + _ |
|
vbCrítico + _ |
|
vbDefaultButton1 + _ |
|
vbSistemaModal |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult1() |
|
Respuesta tenue como VbMsgBoxResult |
|
|
|
respuesta = MsgBox("Hoc Excel Online", vbYesNo + vbCritical) |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult2() |
|
Respuesta tenue como VbMsgBoxResult |
|
|
|
respuesta = MsgBox("Hoc Excel Online", vbSíNo + vbPregunta) |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult3() |
|
Respuesta tenue como VbMsgBoxResult |
|
|
|
respuesta = MsgBox("Hoc Excel Online", vbYesNo + vbExclamation) |
|
respuesta de cuadro de mensaje |
|
|
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult4() |
|
Respuesta tenue como VbMsgBoxResult |
|
|
|
respuesta = MsgBox("Hoc Excel Online", vbSíNo + vbInformación) |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult5() |
|
Respuesta tenue como VbMsgBoxResult |
|
respuesta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult6() |
|
Respuesta tenue como VbMsgBoxResult |
|
respuesta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult7() |
|
Respuesta tenue como VbMsgBoxResult |
|
respuesta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
Sub HeoMsgBoxResult8() |
|
Respuesta tenue como VbMsgBoxResult |
|
respuesta = MsgBox("Error", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult9() |
|
Respuesta tenue como VbMsgBoxResult |
|
respuesta = MsgBox("¿Quieres volver a intentarlo?", vbRetryCancel + vbQuestion, "Error") |
|
respuesta de cuadro de mensaje |
|
Subtítulo final |
|
|
|
SubHeoMsgBoxResult10() |
|
MsgBox "Ocurrió un error crítico", vbCritical, "Error del sistema" |
|
Subtítulo final |