Cuadros de diálogo
Presentación
El objetivo principal de los cuadros de diálogo es controlar el intercambio de información con el usuario: mostrar mensajes, pedir información, vista y entrada de datos, etc.
Existen tres tipos de cuadros de diálogo:
-
Los cuadros de diálogo llamados cuadros de diálogo integrados, que permiten, por ejemplo, abrir o guardar un archivo, definir las opciones de Excel, imprimir hojas de cálculo, ordenar datos, etc.
-
Los cuadros de diálogo predefinidos, que permiten mostrar un mensaje, hacer una pregunta al usuario o invitarlo a introducir una información.
-
Los cuadros de diálogo personalizados o formularios, que permiten mostrar o introducir datos en una interfaz amigable. La creación de formularios personalizados se explica en el capítulo siguiente.
Cuadros de diálogo integrados
1. El objeto Dialog
Los cuadros de diálogo integrados son objetos Dialog pertenecientes a la colección Dialogs del objeto Application.
Sintaxis
Para mostrar un cuadro de diálogo, use el método Show según la siguiente sintaxis: Application.Dialogs(xlDialog).Show
donde xlDialog es una constante de Excel que indica el cuadro de diálogo que hay que mostrar.
Ejemplos de constantes xlDialog
Constante |
Cuadro de diálogo |
xlDialogBorder |
Bordes |
xlDialogFontProperties |
Fuente |
xlDialogDisplay |
Opciones de visualización |
xlDialogDefineName |
Definir un nombre |
xlDialogFormulaGoto |
Ir a... |
xlDialogOpenAbrir |
Abrir |
xlDialogSaveAs |
Guardar como... |
xlDialogSort |
Ordenar |
2. Los métodos GetOpenFileName y GetSaveAsFileName
Los métodos GetOpenFileName y GetSaveAsFileName del objeto Application muestran, respectivamente, los cuadros de diálogo Abrir y Guardar como... del menú Archivo.
A diferencia de los objetos Dialogs correspondientes (constantes xlOpen y xlSaveAs), estos métodos no realizan ninguna acción; solamente permiten recuperar el nombre del archivo introducido o seleccionado por el usuario.
Sintaxis del método GetOpenFileName
Application.GetOpenFileName(FileFilter, FilterIndex, Title,
ButtonText, MultiSelect)
Todos los argumentos son opcionales.
FileFilter |
Criterios de filtrado: nombre del filtro seguido de la extensión. Por ejemplo: "PáginaWeb (*.htm;*.html) ,*.htm;*.html". |
FileIndex |
Índice del criterio de filtrado por defecto. |
Title |
Título del cuadro de diálogo. |
ButtonText |
Etiqueta del botón Abrir (solamente para Macintosh). |
MultiSelect |
Indica si el usuario puede seleccionar varios archivos. |
Sintaxis...
Cuadros de diálogo predefinidos
1. La función InputBox
Muestra una pregunta (una solicitud de datos) y devuelve el texto escrito por el usuario.
InputBox(prompt,title,default,xpos,ypos,helpfile,context)
prompt |
Cadena que aparecerá como mensaje. |
title |
Cadena que aparecerá en la barra de título. |
default |
Valor tomado por defecto. |
xpos |
Posición horizontal del cuadro de diálogo (expresado en twips). |
ypos |
Posición vertical del cuadro de diálogo (expresado en twips). |
helpfile |
Nombre del archivo de ayuda contextual. |
context |
Número del contexto de ayuda. |
Ejemplo
Este ejemplo muestra un cuadro de diálogo que pide el nombre de las celdas que hay que borrar (las celdas reciben el nombre de cada mes).
Sub Borrar_Celdas_Nombradas()
Dim sOpcion As String
' Pide introducir el mes que hay que borrar
' Si el mes se reconoce, borra las celdas con nombre
' Si no, muestra un mensaje de error
sOpcion = InputBox( _
Prompt:="¿Qué mes desea borrar?", _
Title:="Borrar celdas")
On Error GoTo Err
Application.Goto reference:=sOpcion
Selection.Clear
Exit Sub
Err:
MsgBox "No se puede borrar, nombre de celda inexistente"
End Sub
2. El método InputBox
Actúa como la función InputBox, pero permite controlar el tipo de datos que hay que introducir.
objeto.InputBox(prompt,title,default,left,top,helpfile,
helpContextID,type)
El objeto es obligatorio y debe ser un objeto Application.
prompt |
Mensaje mostrado. |
title |
Título del cuadro de diálogo. |
default |
Valor tomado por defecto. |
left |
Posición horizontal del cuadro de diálogo (en puntos). |
top |
Posición vertical del cuadro de diálogo (en puntos). |
helpfile |
Nombre del archivo de ayuda en línea. |
helpContextID |
Número del contexto de ayuda. |
type |
Tipo de datos que se devolverá: 0: Fórmula 1: Número 2: Cadena 4: Valor Booleano 8: Referencia de celda 16: Valor de error 64: Matriz de valores en una selección de celdas. |
Para aceptar varios tipos de datos, haga la suma de los valores. Por ejemplo...