Operaciones sobre el Objeto WorkBook

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 para cambiar su nombre por ModArchivos. Digite allí los procedimientos que pasamos a describir.

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:


- - . Seleccionar ioFile y .

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í