Antes de ver los objetos WorkSheets, completaremos el uso del objeto libro con algunos procedimientos para abrir o guardar libros, cada uno de ellos en su respectivo módulo y llamados desde otro módulo.
Abra su libro MisMacros02.xlsm y, estando en el Editor, inserte un Nuevo módulo. Vaya a propiedades y haga clic en su
El siguiente procedimiento permite abrir un libro. Permite ubcar la unidad, carpeta y seleccionar el archive a ser abierto:
Sub Abrir()
fName = Application.GetOpenFilename
Workbooks.Open fName
End Sub
El siguiente procedimiento permite guardar el libro en uso (libro activo = ActiWorkBook) con el nombre que tenga:
Sub Guardar()
ActiveWorkbook.Save
End Sub
Para guardar un libro con un Nuevo nombre, use el siguiente procedimiento:
Sub GuardarComo()
MsgBox ("Digite el nombre y su extensión (xlsx)")
fName = Application.GetSaveAsFilename
ActiveWorkbook.SaveAs fName, FileFormat:=xlOpenXMLWorkbook
' FileFormat:=51 es xlOpenXMLWorkbook ................ Graba como libro xlsx
' FileFormat:=52 es xlOpenXMLWorkbookMacroEnabled ......... graba con o sin macros, pero habilitado
' FileFormat:=56 es xlExcel8 ......... en formato xls
End Sub
La constant FileFormat = 51 le permite guardar el archive como una hoja del Excel. Recuerde que, cuando ubique la unidad y carpeta, debe digitar el nombre seguido de la extension.
Para guardar un libro que contiene macros, y que esté habilitado para macros, debe usar el siguiente procedimiento:
Sub GuardarConMacros()
fName = Application.GetSaveAsFilename
ActiveWorkbook.SaveAs fName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Para cerrar el libro active, use el siguiente procedimiento:
Sub Cerrar()
ActiveWorkbook.Close
End Sub
Nota:
Observe que todos los procedimientos, except Abrir, actúan sobre el libro activo. Expliquemos esto:
Supongamos que tenemos abierto el libro MisMacros02.xlsm. Este es el libro activo. Si abrimos un Segundo libro: AplicEstad.xlsx, éste pasa a ser el libro activo. Supongamos que modificamos algo en este libro y pasamos a abrir el libro Ventas.xlsx. y lo modificamos en algo. Si deseamos guardar el AplicEstad, debemos activarlo primero; es decir, usar: WorkBooks(“AplicEstad.xlsx”).Activate. Ahora sí podemos cerrarlo sea con Guardar o GuardarComo.
Ahora la elegancia del procedimiento llamador:
Al inicio del primer procedimiento abra espacio e ingrese el siguiente procedimiento que le permite disponer de un menú para seleccionar la operación deseada.
Sub Archivos(xio)
Select Case xio
Case 1: Abrir
Case 2: Guardar
Case 3: GuardarComo
Case 4: GuardarConMacros
Case 5: Cerrar
End Select
End Sub
Una observación importante:
Este procedimiento tiene un argumento: xio. Esto significa que, para ser ejecutado adecuadamente, alguien lo llamó y le pasó un dato que va de 1 a 5 que, dependiendo de su valor, se llama una determinada operación de archivos.
Finalmente, haga doble clic en nuestro primer módulo de este libro llamado Libros. Al final de todos los procedimientos existente en él, ingrese el siguiente procedimiento:
Sub ioFile()
ioX = Val(InputBox("¿Qué es lo que desea hacer?:" + Chr(13) + _
"1. Abrir archivo" + Chr(13) + "2. Guardar" + _
Chr(13) + "3. Guardar como" + Chr(13) + _
"4. Guardar, habilitado para macros" + Chr(13) + "5. Cerrar"))
ModArchivos.Archivos (ioX)
End Sub
Ante todo, aquí sólo hay 2 líneas de programa: La primera que empieza con ioX … y termina con “))”. La segunda ModArchivos(ioX).
En este procedimiento se ingresa el número de la acción a realizar y luego se llama al módulo ModArchivos a quién se le transfiere el valor digitado.
No se olvide de grabar su archivo que contiene las macros: MisMacros02.xlsm
Para ejecutarlo se debe estar en el módulo Libros, ubicar el cursor en este procedimiento y ejecutarlo o presioanr F5. Recuerde que el procedimiento que se va a ejecutar se llama ioFile.
Otra manera de ejecutar uno de tantos procedimientos creados, desde el Excel:
A continuación presentamos cuatro imágenes correspondientes a los procedimientos descritos en esta sesión
La primera imagen contiene las rutinas llamadas y la segunda contiene al módulo llamador.
Guarde su libro MisMacros02.xlsm. Verifique que no haya otro libro abierto y vuelva a ejecutarlo para entender bien el procedimiento.
En la siguiente sesión continuaremos con el uso del objeto WorkSheet
haga clic aquí