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()
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sub abrir_archivo() | |
arch = Application.GetOpenFilename(, , "Seleccionar el archivo a procesar", , True) | |
Debug.Print arch(1) | |
Debug.Print arch(2) | |
End Sub |
Espero les sirva.
No hay comentarios.:
Publicar un comentario