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.