miércoles, 10 de mayo de 2017

Trabajando con los argumentos del método GetOpenFilename en vba

En el post anterior tuvimos nuestro primer contacto con el método GetOpenFilename. Hoy vamos a revisar los argumentos opcionales que podemos incluir cuando nuestra macro realice la llamada al método.

La siguiente es la estructura completa del método con sus argumentos:

Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

Donde:

FileFilter: Es una cadena de texto que nos sirve para aplicar un criterio de filtrado.
FilterIndex: Es un número que funciona como indice para indicar cuál es el criterio de filtrado a usar.
Title: Sirve para personalizar el titulo del cuadro de diálogo. Si se deja en blanco, por defecto aparecera: Abrir.
ButtonText: Solo aplica para Mac.
Multiselect: Acepta el valor True (verdadero) o False (falso). True nos permite seleccionar más de un archivo a la vez. False solo nos permite seleccionar un archivo.

Recordemos que cuando llamamos el método sin ninguno de sus argumentos lo que tenemos es el siguiente cuadro:


Vamos a hacer el llamado pasando un valor para el argumento FileFilter: 

Al hacerlo tenemos:


Como ven, en la lista desplegable ya no nos aparece: Todos los archivos, ahora esta restringiendo la busqueda a archivos de texto del tipo: *.txt

Podemos hacer lo mismo para archivos de excel: *.xlsm, separados por comas: *.csv etc.

Ahora probemos con el argumento Title:



Con lo que tenemos:



Como ven, el título del cuadro de diálogo se ha cambiado por el que pusimos en nuestro código.

Por último, probemos la selección múltiple - MultiSelect:



Con lo que tenemos la opción de seleccionar múltiples archivos con la combinación del mouse y las teclas Ctrl y/o Shift:



Y como es de esperar, nuestra variable ahora se convierte en un array (matriz):




Este es el código fuente final:

Sub abrir_archivo()
Espero les sirva.

No hay comentarios.:

Publicar un comentario