Exibindo caixas de diálogo internas do Word
Este tópico contém informações e exemplos nas seções a seguir.
Exibindo uma caixa de diálogo interna
Você pode exibir uma caixa de diálogo interna para obter a entrada do usuário ou controlar o Word usando Visual Basic for Applications (VBA). O método Mostrar do objeto Dialog exibe e executa qualquer ação tomada em uma caixa de diálogo interna do Word. Para acessar uma caixa de diálogo interna específica do Word, especifique uma constante WdWordDialog com a propriedade Dialogs . Por exemplo, a instrução de macro a seguir exibe a caixa de diálogo Abrir (wdDialogFileOpen).
Sub ShowOpenDialog()
Dialogs(wdDialogFileOpen).Show
End Sub
Se você selecionar um arquivo e clicar em OK, o arquivo será aberto (a ação será executada). O exemplo seguinte exibe a caixa de diálogo Imprimir (wdDialogFilePrint).
Sub ShowPrintDialog()
Dialogs(wdDialogFilePrint).Show
End Sub
Defina a propriedade DefaultTab para acessar uma guia específica em uma caixa de diálogo do Word. O exemplo a seguir exibe a guia Borda da Página na caixa de diálogo Bordas e Sombreamento .
Sub ShowBorderDialog()
With Dialogs(wdDialogFormatBordersAndShading)
.DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder
.Show
End With
End Sub
Observação
Você também pode usar as propriedades do VBA no Word para ver as informações do usuário sem exibir a caixa de diálogo. O exemplo a seguir usa a propriedade UserName para o objeto Application para exibir o nome de usuário do aplicativo sem exibir a caixa de diálogo Informações do Usuário .
Sub DisplayUserInfo()
MsgBox Application.UserName
End Sub
Se o nome do usuário for alterado no exemplo anterior, a alteração não será definida na caixa de diálogo. Use o método Execute para executar as configurações em uma caixa de diálogo sem exibir a caixa de diálogo. O exemplo a seguir exibe a caixa de diálogo Informações do usuário e se o nome não for uma cadeia vazia, as configurações são definidas na caixa de diálogo usando o método Execute.
Sub ShowAndSetUserInfoDialogBox()
With Dialogs(wdDialogToolsOptionsUserInfo)
.Display
If .Name <> "" Then .Execute
End With
End Sub
Observação
Use as propriedades e os métodos do VBA no Word para definir as informações do usuário sem exibir a caixa de diálogo. O exemplo de código a seguir altera o nome do usuário pela propriedade UserName do objeto Application e, em seguida, exibe a caixa de diálogo Informações do Usuário para mostrar que a alteração foi feita. Observe como a exibição da caixa de diálogo não é necessária para alterar o valor de uma caixa de diálogo.
Sub SetUserName()
Application.UserName = "Jeff Smith"
Dialogs(wdDialogToolsOptionsUserInfo).Display
End Sub
Retornar e alterar definições de caixa de diálogo
Não é muito eficiente usar um objeto Dialog para retornar ou alterar um valor para uma caixa de diálogo quando você pode retornar ou alterá-lo usando uma propriedade ou método. Além disso, em muitos casos, ou todos, quando o código de VBA é usado em vez de acessar o objeto Dialog, o código é mais simples e menor. Assim, os exemplos a seguir também incluiriam exemplos correspondentes que podem usar propriedades de VBA correspondentes para realizar as mesmas tarefas.
Antes de retornar ou alterar uma configuração de caixa de diálogo usando o objeto Diálogo , você precisa identificar a caixa de diálogo individual. Isso é feito usando a propriedade Dialogs com uma constante WdWordDialog . Depois que criar uma instância do objeto Dialog, você poderá retornar ou definir as opções na caixa de diálogo. O exemplo a seguir exibe o recuo direito a partir da caixa de diálogo Parágrafo.
Sub ShowRightIndent()
Dim dlgParagraph As Dialog
Set dlgParagraph = Dialogs(wdDialogFormatParagraph)
MsgBox "Right indent = " & dlgParagraph.RightIndent
End Sub
Observação
Use as propriedades do VBA e os métodos do Word para exibir a configuração de recuo certa para o parágrafo. O exemplo a seguir usa a propriedade RightIndent do objeto ParagraphFormat para exibir o recuo direito para o parágrafo na posição do ponto de inserção.
Sub ShowRightIndexForSelectedParagraph()
MsgBox Selection.ParagraphFormat.RightIndent
End Sub
Tal como você pode retornar definições de caixa de diálogo, você também pode defini-las. O exemplo seguinte marca a caixa de seleção Manter com o próximo da caixa de diálogo Parágrafo.
Sub SetKeepWithNext()
With Dialogs(wdDialogFormatParagraph)
.KeepWithNext = 1
.Execute
End With
End Sub
Observação
Você também pode usar as propriedades e os métodos do VBA para alterar o recuo à direita para o parágrafo. O exemplo a seguir usa a propriedade KeepWithNext do objeto ParagraphFormat para manter o parágrafo selecionado com o parágrafo a seguir.
Sub SetKeepWithNextForSelectedParagraph()
Selection.ParagraphFormat.KeepWithNext = True
End Sub
Observação
Use o método Update para garantir que os valores da caixa de diálogo reflitam os valores atuais. Pode ser necessário usar o método Update se você definir inicialmente uma variável de caixa de diálogo em sua macro e, depois, desejar retornar ou alterar as configurações atuais.
Verificar como uma caixa de diálogo foi fechada
O valor retornado pelos métodos Show e Display indica qual botão foi clicado para fechar a caixa de diálogo. O exemplo seguinte exibe a caixa de diálogo Quebra e, se você clicar em OK, uma mensagem será exibida na barra de status.
Sub DialogBoxButtons()
If Dialogs(wdDialogInsertBreak).Show = -1 Then
StatusBar = "Break inserted"
End If
End Sub
A tabela seguinte descreve os valores de retorno associados com os botões nas caixas de diálogo.
Valor retornado | Descrição |
---|---|
-2 | O botão Fechar. |
-1 | O botão OK. |
0 (zero) | O botão Cancelar. |
> 0 (zero) | Um botão de comando: 1 é o primeiro botão, 2 é o segundo botão e assim por diante. |
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.