Mostrar cuadros de diálogo integrados de Word

Este tema contiene información y ejemplos en las secciones siguientes.

Mostrar un cuadro de diálogo integrado.

Puede mostrar un cuadro de diálogo integrado para obtener la entrada del usuario o para controlar Word utilizando Visual Basic para Aplicaciones (VBA). El método Show del objeto Dialog muestra y ejecuta cualquier acción realizada en un cuadro de diálogo integrado de Word. Para tener acceso a un determinado cuadro de diálogo integrado de Word, especifique una constante WdWordDialog con la propiedad Dialogs. Por ejemplo, la siguiente instrucción de macro muestra el cuadro de diálogo Open (wdDialogFileOpen).

Sub ShowOpenDialog() 
 Dialogs(wdDialogFileOpen).Show 
End Sub

Si se selecciona un archivo y se hace clic en Aceptar, se abrirá el archivo; es decir, se ejecuta la acción. En el siguiente ejemplo, se muestra el cuadro de diálogo Imprimir (wdDialogFilePrint).

Sub ShowPrintDialog() 
 Dialogs(wdDialogFilePrint).Show 
End Sub

Establezca la propiedad DefaultTab para acceder a una pestaña determinada en un cuadro de diálogo de Word. El siguiente ejemplo muestra la ficha Borde de página en el cuadro de diálogo Bordes y sombreado.

Sub ShowBorderDialog() 
 With Dialogs(wdDialogFormatBordersAndShading) 
 .DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder 
 .Show 
 End With 
End Sub

Nota:

También puede utilizar las propiedades VBA de Word para mostrar la información del usuario sin mostrar el cuadro de diálogo. En el ejemplo siguiente se usa la propiedad UserName del objeto Application para mostrar el nombre de usuario de la aplicación sin mostrar el cuadro de diálogo Información de usuario .

Sub DisplayUserInfo() 
 MsgBox Application.UserName 
End Sub

Si se cambia el nombre de usuario en el ejemplo anterior, el cambio no se establece en el cuadro de diálogo. Use el método Execute para ejecutar la configuración en un cuadro de diálogo sin mostrar el cuadro de diálogo. El siguiente ejemplo muestra el cuadro de diálogo Información del usuario y, si el nombre no es una cadena vacía, se establecen los valores en el cuadro de diálogo utilizando el método Execute.

Sub ShowAndSetUserInfoDialogBox() 
 With Dialogs(wdDialogToolsOptionsUserInfo) 
 .Display 
 If .Name <> "" Then .Execute 
 End With 
End Sub

Nota:

En Word utilice las propiedades y los métodos de VBA para establecer la información del usuario sin mostrar el cuadro de diálogo. El siguiente ejemplo de código cambia el nombre del usuario mediante la propiedad UserName del objeto Application y muestra el cuadro de diálogo Información del usuario para mostrar que el cambio se ha realizado. Observe que no es necesario mostrar el cuadro de diálogo para cambiar su valor.

Sub SetUserName() 
 Application.UserName = "Jeff Smith" 
 Dialogs(wdDialogToolsOptionsUserInfo).Display 
End Sub

Devolver y cambiar los valores de los cuadros de diálogo

No es muy eficaz usar un objeto Dialog para devolver o cambiar un valor de un cuadro de diálogo cuando se puede devolver o cambiar mediante una propiedad o método. Además, en la mayoría de los casos, si no en todos, cuando se utiliza código VBA en lugar de obtener acceso al objeto Dialog, el código es más rápido y sencillo. Por lo tanto, los siguientes ejemplos incluyen también ejemplos que utilizan propiedades de VBA correspondientes para realizar las mismas tareas.

Antes de devolver o cambiar una configuración de cuadro de diálogo mediante el objeto Dialog , debe identificar el cuadro de diálogo individual. Esto se realiza mediante la propiedad Dialogs con una constante WdWordDialog. Después de crear instancia de un objeto Dialog, puede devolver o establecer opciones en el cuadro de diálogo. El siguiente ejemplo muestra la sangría derecha desde el cuadro de diálogo Párrafos.

Sub ShowRightIndent() 
 Dim dlgParagraph As Dialog 
 Set dlgParagraph = Dialogs(wdDialogFormatParagraph) 
 MsgBox "Right indent = " & dlgParagraph.RightIndent 
End Sub

Nota:

Use las propiedades y los métodos de VBA de Word para mostrar la configuración de sangría derecha para el párrafo. En el ejemplo siguiente se usa la propiedad RightIndent del objeto ParagraphFormat para mostrar la sangría derecha del párrafo en la posición del punto de inserción.

Sub ShowRightIndexForSelectedParagraph() 
 MsgBox Selection.ParagraphFormat.RightIndent 
End Sub

De la misma forma que puede devolver los valores del cuadro de diálogo, también puede establecerlos. En el siguiente ejemplo, se activa la casilla de verificación Conservar con el siguiente del cuadro de diálogo Párrafo.

Sub SetKeepWithNext() 
 With Dialogs(wdDialogFormatParagraph) 
 .KeepWithNext = 1 
 .Execute 
 End With 
End Sub

Nota:

También puede utilizar los métodos y propiedades VBA para cambiar la sangría derecha del párrafo. En el ejemplo siguiente se usa la propiedad KeepWithNext del objeto ParagraphFormat para mantener el párrafo seleccionado con el párrafo siguiente.

Sub SetKeepWithNextForSelectedParagraph() 
 Selection.ParagraphFormat.KeepWithNext = True 
End Sub

Nota:

Use el método Update para asegurarse de que los valores del cuadro de diálogo reflejan los valores actuales. Puede ser necesario utilizar el método Update si define una variable de cuadro de diálogo en primer lugar en la macro y más adelante desea recuperar o cambiar la configuración actual.

Comprobar cómo se cerró un cuadro de diálogo

El valor devuelto por los métodos Show y Display indica en qué botón se ha hecho clic para cerrar el cuadro de diálogo. En el siguiente ejemplo, se muestra el cuadro de diálogo Interrumpir y, si se ha hecho clic en Aceptar, aparece un mensaje en la barra de estado.

Sub DialogBoxButtons() 
 If Dialogs(wdDialogInsertBreak).Show = -1 Then 
 StatusBar = "Break inserted" 
 End If 
End Sub

En la siguiente tabla se describen los valores devueltos asociados con botones en cuadros de diálogo.

Valor devuelto Descripción
-2 Botón Cerrar.
-1 Botón Aceptar.
0 (cero) Botón Cancelar.
> 0 (zero) Botón de comando: 1 corresponde al primer botón, 2 al segundo, y así sucesivamente.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.