Percorrendo os comentários, vi algumas perguntas de leitores sobre como trabalhar com caixas de entrada e mensagem do Visual Basic no PowerPoint.
Neste tutorial, forneceremos um conhecimento básico muito básico para ajudá-lo a usar esses recursos ao automatizar a criação de sua apresentação.
Configurando a guia Desenvolvedor
Primeiro, precisaremos habilitar o ambiente do desenvolvedor para o PowerPoint. Siga este tutorial para configurar sua guia de desenvolvimento.
No PowerPoint, vá para o menu Desenvolvedor e clique em Visual Basic.
Na árvore do projeto, clique com o botão direito em sua apresentação, pressione Inserir e, em seguida, escolha Módulo. Um novo Módulo VBA será criado, é nesse local que você escreverá seu código.
Caixas de mensagens no PowerPoint
As caixas de mensagens são meio autoexplicativas, seu objetivo é exibir algumas informações úteis para o usuário final. Escreva o seguinte código em seu módulo:
Sub simplemessagebox()
MsgBox ("This is a simple message box")
End Sub
Aperte F5 ou Run e veja o resultado:

Exemplo de mensagem e caixa de entrada
Ao contrário das Caixas de Mensagens, as caixas de entrada são usadas para obter feedback do usuário. Vejamos o exemplo abaixo. O script insere automaticamente novos slides na apresentação.
Aqui está o que vamos implementar:
- Primeiro, solicitaremos ao usuário o número de slides a serem adicionados (usando uma caixa de entrada).
- Em seguida, notificaremos o usuário sobre o número de slides a serem criados (usando uma caixa de mensagem)
- Por último, seguirá em frente e criará os slides programaticamente.
- Por último, salvaremos a apresentação 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
Espero ter ajudado, sinta-se à vontade para deixar comentários conforme necessário.
Verifique os valores retornados da função MsgBox
Quando a caixa de diálogo MsgBox aparecer para interação do usuário, você deseja saber em qual opção o usuário clicou, você pode usar o seguinte código para verificar isso:
O código verifica qual botão o usuário escolhe no MsgBox
De acordo com a escolha de cada usuário, você pode continuar executando códigos diferentes. Esses códigos VBA podem ser aprendidos em cursos VBA com os principais especialistas em Aprenda Excel Online.
MsgBox suporta vietnamita com sotaque? A resposta é não, por quê? Porque a Microsoft programou assim. Mas existe alguma outra maneira? A resposta é sim. Você pode ler o artigo Usando vietnamita com sotaque com MsgBox VBA
Todo o código do artigo você pode ver no Gist:
|
SubHeoBasicMessageBox() |
|
MsgBox "Xin chao cac ban da den voi Hoc Excel Online" |
|
Finalizar sub |
|
|
|
SubHeoBasicMessageBoxWithTitle() |
|
MsgBox "Xin chao cac ban da den voi Hoc Excel Online", , "HEO" |
|
Finalizar sub |
|
|
|
SubHeoBasicMessageBox2() |
|
MsgBox "Hoc Excel Online", _ |
|
vbOKCancelar + _ |
|
vbCrítico + _ |
|
vbDefaultButton1 + _ |
|
vbApplicationModal |
|
Finalizar sub |
|
|
|
SubHeoBasicMessageBox3() |
|
MsgBox "Hoc Excel Online", _ |
|
vbOKCancelar + _ |
|
vbCrítico + _ |
|
vbDefaultButton1 + _ |
|
vbSystemModal |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult1() |
|
Resposta escura como VbMsgBoxResult |
|
|
|
resposta = MsgBox("Hoc Excel Online", vbSimNão + vbCritical) |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult2() |
|
Resposta escura como VbMsgBoxResult |
|
|
|
resposta = MsgBox("Hoc Excel Online", vbSimNão + vbQuestion) |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult3() |
|
Resposta escura como VbMsgBoxResult |
|
|
|
resposta = MsgBox("Hoc Excel Online", vbSimNão + vbExclamação) |
|
Resposta da caixa de mensagens |
|
|
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult4() |
|
Resposta escura como VbMsgBoxResult |
|
|
|
resposta = MsgBox("Hoc Excel Online", vbSimNão + vbInformation) |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult5() |
|
Resposta escura como VbMsgBoxResult |
|
resposta = MsgBox("Erro", vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton) |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult6() |
|
Resposta escura como VbMsgBoxResult |
|
resposta = MsgBox("Erro", vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton) |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult7() |
|
Resposta escura como VbMsgBoxResult |
|
resposta = MsgBox("Erro", vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton) |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult8() |
|
Resposta escura como VbMsgBoxResult |
|
resposta = MsgBox("Erro", vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton) |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult9() |
|
Resposta escura como VbMsgBoxResult |
|
resposta = MsgBox("Quer tentar novamente?", vbRetryCancel + vbQuestion, "Erro") |
|
Resposta da caixa de mensagens |
|
Finalizar sub |
|
|
|
SubHeoMsgBoxResult10() |
|
MsgBox "Ocorreu um erro crítico", vbCritical, "Erro de sistema" |
|
Finalizar sub |