sábado, 5 de enero de 2008

Modelo de Objetos Excel (Macros - Excel Vba )

Ejemplos de objetos seria un libro de trabajo, una hoja de cálculo,un rango de una hoja de cálculo. Encntramos más objetos a nuestra disposición y manipularan mediante el uso de código VBA.·Las clases de objetos están ordenados de manera jerárquica. Los objetos actuan como contenedores de otros objetos. Por ejemplo, Excel es un objeto llamado Applcation y contiene otros como WorkBook y CommandBar. El objeto WoorkBook puede contener otros objetos como WorkSheet y Chart. Un objetoWoorkSheet puede contener objetos como Range . Nos referimos al orden de estos objetos como modelo de objetos de Excel.

Por ejemplo, la colección de WorkSheets está compuesta por todas las hojas de cálculo de un libro . La colección CommandBars está compuesta por los objetos CommandBar. Las colecciones son objetos en símismas.Cuando nos referimos a un objeto contenido o miembro, estamosespecificando su posición en la jerarquía del objeto, usando unpunto como seprador entre el contenedor y el miembro.

Application.WorkBooks("Cuentas.xls")Esto se refiere al libro "Cuentas.xls" en la colección de WorkBooks.
Modelo de Objetos del Excel






Una vez que el usuario aprende a leer e interpretar una libreria de objetos del Excel se puede apuntar a nuevas posibilidades y proyectarse de seguro hacia como ponerlas en practica .La mejor manera de aprender como se comunica vba con excel es grabar algunas macros sencilas.





Seria importante tambien hacer lo sgte :

Entendiendo que estas sobre un libro de Excel


1) Presiona "ALT" + "F11"

- ya estas sobre el entorno Vba del Excel

2) Presiona "F2"

Ahora puedes ver el examinador de objetos

-para el ejemplo de la imagen he colocado -->"application" en la cajita y como veras


nos muestra toda una jeraquia de objetos apartir del objeto "applicaction"


igualmente puedes colocar tambien "workbook" o cualquier elemento del


modelo de objetos y asi de esa manera podras tambine darte cuenta de la estrctura de objetos para el Excel.

viernes, 4 de enero de 2008

Microsoft Excel Macros - Codigo Vba Excel

Como ya hemos creado algunas macros para Excel muy simples y ahora pueden crear las macros basicas...creo que podemos seguir avanzando..

Creo que ahora podemos darle otra orientación al tema de pronto seria importante ... tratar el tema de una forma
tal vez más amplia es decir ..explicar muy a groso modo el modelo de objetos de Microsoft Excel .....

Modelo de objetos de Excel (los primeros objetos de Excel que necesitamos conocer)
------------------------------------------------------------------------------------------
Como los datos de un documento de Excel están muy estructurados, el modelo de objetos es jerárquico y sencillo. Excel proporciona cientos de objetos con los que quizá desee interactuar, pero puede empezar a trabajar con el modelo de objetos centrándose en un subconjunto muy pequeño de los objetos disponibles. Entre éstos se incluyen:

Esta seria una pequeña definición..muy practica

a) Application (representa la propia aplicación Excel)
b) Workbook (representa un libro en la aplicación Excel)
c) Worksheet (representa una hoja del libro )
d) Range ( representa una celda, una fila, una columna, una selección de celdas que contiene

uno o más bloques de celdas (que podrían ser contiguos o no), o incluso un grupo de celdas
de varias hojas. )
*será el objeto más utilizado en las aplicaciones de Excel

Modelo jerárquico
-------------------------------------------------------------------------
Application-->Workbooks-->Sheets --> Range
(Excel) --> (Libro) --> ( Hoja) --> (celda o celdas )

*Accediendo a la colección de libros accederemos
a un libro determninado.

-en este caso activamos "Libro1.xls"

- Workbooks("Libro1.xls").activate

-referenciar a el libro activo : ActiveWorkbook

*Igualmente de la colección de hojas indicamos una del conjunto
en este caso activamos la hoja "cuentas"

- Sheets("cuentas1").activate

-referenciar a la hoja activa : ActiveSheet

*Referenciando un rango:
* y activamos la celda A1

- Range("A1").activate

-la celda activa se referencia como : ActiveCell

ejemplos macros excel vba

sub gridlines

'seria bueno que ejecutes el codigo linea por linea
'como te explique en algun post anterior
'debes dar click sobre la macro en la primera linea
'y luego de presionar f8 podras ejecutar tus macros de excel por pasos



ActiveWindow.DisplayGridlines = False ' quitar las lineas de la hoja


ActiveWindow.DisplayGridlines = True ' mostrar las lineas de la hoja



end sub


sub trabajndo_con_colores

'en el excel puedes modificar 56 colores
' en este ejemplo modificaremos el color 44 de la paleta de colores


ActiveWorkbook.Colors(44) = RGB(230, 230, 233)
'con esto cambias el color con el index 44 en todas las celdas del libro


'restablecer los colores por defecto
ActiveWorkbook.ResetColors


'copiar colores desde otro libro
ActiveWorkbook.Colors = Workbooks("coloradon.xls").Colors
'con esto copias los colores del libro "coloradon.xls" para tu libro activo.


'-------------------------
'y si solo quieres trabajar con una celda o selección
'como te dije puedes usar cualquiera delos 56 colore que la paleta de Excel

ActiveCell.Interior.ColorIndex = 16 'en este caso le asignamos color 16 a la celda


Selection.Interior.ColorIndex = 56 'ahora sobre la selección(una celda o varias)


end sub

nuevos ejemplos macros excel( codigo excel vba)

*aqui unos pequeños mini-macros.. para que continues con tus primeros pasos
en el vba.

'ojo logicamente para este ejemplo estas sobre un 'libro de prueba para que no pierdas algun avance sin guardar

sub cerrar_book1 'prueba1

ActiveWorkbook.Close 'con esto cierras tu libro.. sin guardar cambios

end sub


sub cerrar_book2 'prueba2

ActiveWorkbook.Close(True) ' cerrar guardando los cambios realizados

end sub



sub opens_wbk

'Abrir un libro de Excel ..desde una ruta conocida

Workbooks.Open FileName:="F:\examples\antiguos_modelos.xls"

end sub

sub obtener_name 'obtener el nombre del libro activo

MsgBox ActiveWorkbook.FullName

end sub

sub agreagar ' con esta macro agregas una nueva hoja en el libro activo

ActiveWorkbook.Sheets.Add

end sub

sub eliminar 'aqui eliminaremos la hoja "calculos1"

sheets("calculos1").delete

end sub

Sub select_primera 'activamos la primera hoja

ActiveWindow.ScrollWorkbookTabs Position:=xlFirst

'tambien podrias activarlo asi:

activeworkbook.sheets(1).activate

end sub

sub select_last 'activar la ultima hoja

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

end sub

sub new_sheet ' con este ejemplo podras Insertar una hoja nueva (en la posición que quieras)

ActiveWorkbook.Sheets.Add Before:=Worksheets("pagos_abril")

end sub

sub mover_sht 'ejemplo de como mover una hoja

Worksheets("hojaxxx").Move After:=Worksheets("hojayyy")

end sub

sub eliminar las_shts ' y si te molesta eliminar las hojas una por una

'puede seleccionar varias y eliminarlas con la sgte macro.

ActiveWindow.SelectedSheets.Delete

end sub

viernes, 13 de julio de 2007

ejemplos de macros excel-vba

Sub AbrirTuLibro() 'de pronto puede ser util una macro que abra un libro que usas seguido

Workbooks.Open ("C:\Mis documentos\consultas.xls")

End Sub ' un ejemplo ultra simple pero de hay las posibilidades de mejoralo dependen de ti
'derrepente usas un formulario que te precargue tus libros de tu directorio mas vistado etc.. favoritos..etc,etc

'si lo se..las macros son recontra y abusivamente basicas pero por ahora..pero como estas 'aprendiendo tienes que comenzar por algo

Sub TuNuevoLibro() 'agregar un nuevo libro

Workbooks.Add

End Sub

Sub ACtivartuLibro() ' activar un libro

dim tulibro as string

tulibro="consultas.xls"

Workbooks(tulibro)Activate

End Sub

Creando macros

'estos seran los primeros pasos

Planifique las acciones que deseas ejecute tu macro

La macro se guardara en un nuevo módulo adjunto a un libro.

Para grabar una macro seleccione del menú Herramientas el comando Grabar macro y después del submenú Grabar nueva macro.

asignar un Nombre a la macro

la macro se puede guardar en :
En Este libro,
Nuevo libro o
en el Libro de macros personal.

Para terminar con su grabación seleccione del menú Herramientas el
comando Grabar macro y
en el submenú Finalizar grabación.

Se puede ejecutar una macro seleccionando de la lista en el cuadro de diálogo
Macro. Para que una macro se ejecute cada vez que haga clic en un botón
determinado o presione una combinación de teclas específica, asigne la macro a
un botón de la barra de herramientas

Otra forma de ejecutar una macro es utilizando del menú Herramientas el
comando Macro.

De las macros listadas, se selecciona la deseada y se presiona Ejecutar. También
se puede ejecutar Paso a paso para revisar los procedimientos que va realizando.

Para ejecutar paso por paso...
Presione alt+ f11
Entonces se abrio el entorno del editor vba para excel
Coloque el puntero del mouse sobre la macro que desea ejecutar linea por linea
(trate de compartir la visibilidad entre la ventana del editor vba y su libro de excel..asi podra seguir los cambios ejecutados por su macro en libro)

Ahora presione f8 ..(una vez por cada linea que quiera descender)


Manipulando Macros
Para visualizar el codigo de su macro presiona ALT+F11
Visual Basic permite modificar macros, copiarlas de un módulo a otro, copiarlas
entre diferentes libros, cambiar el nombre de los módulos que almacenan las
macros o cambiar el nombre de las macros.

Algunos ejemplos de lo que podemos hacer con las macros son:

Tareas que son repetitivas, que hay que realizar varias veces el mismo
procedimiento.

Un sistema de información.

Sistemas de administración

Cree sus primeras macros de empleo frecuente

En general el banico de posibilidades es ilimitado usted puede automatizar muchisimas tareas.

. Macro "seleccion_de_rango" seleccione las celdas D1:G10 de la primer hoja del
libro abierto
Macro "style_cursiva" que ponga letra tipo cursiva
. Macro "font_col" que ponga letra de color verde
5. Macro "titulos" que ponga letra de tamaño 18 en las celdas "A1:F1"