Upload
ludel-quenta-ch
View
243
Download
1
Embed Size (px)
DESCRIPTION
MACROS EXCEL
Universidad Andina Néstor Cáceres Velásquez
CAP INGENIERIA CIVIL Ingº JESUS MAMANI VELASQUEZ
INFORMÁTICA PARA
INGENIERÍA CIVIL
TERCER SEMESTRE
2015 - I
Universidad Andina Néstor Cáceres Velásquez
CAP INGENIERIA CIVIL Ingº JESUS MAMANI VELASQUEZ
UNIDAD DIDACTICA III
INFORMÁTICA PARA INGENIERÍA CIVIL
3.2. MS EXCEL – PROGRAMACIÓN CON VBA
3.2.4 Programación orientada a objetos
Visual Basic para Aplicaciones es un lenguaje de programación
orientada a objetos.
Este concepto de programación se basa en la existencia de un mundo
lleno de objetos. Excel, al igual que el resto de las aplicaciones de
Microsoft Office, ofrece un modelo de objetos que se puede
manipular con VBA para cambiar sus propiedades.
Por ejemplo:
Se pueden cambiar los atributos de la fuente (nombre, tamaño, color)
o, mediante métodos como seleccionar, copiar un conjunto de datos.
Objetos
Un objeto es algo tangible que se identifica por sus propiedades y
sus métodos, por ejemplo una persona, un avión, una mesa, un
teléfono.
Cada elemento en Excel es un objeto:
- Un libro (Workbook)
- Las hojas de cálculo (Worksheet)
- Los rangos (Range)
- Los gráficos (Charts)
- Las tabla dinámica (PivotTable)
- Etc.
Los objetos se agrupan en categorías o colecciones.
Por ejemplo: En el caso de Excel, la clase Workbook es la
representante de todos los libros de Excel, mientras que el objeto
Workbook será un libro de trabajo en concreto.
Jerarquía de objetos
El modelo de objetos de Excel está compuesto por más de 192 objetos
diferentes, algunos de ellos están ocultos, y otros se usan muy poco o se
dejaron de utilizar.
Los objetos de Excel pueden contener otros objetos, y a su vez, estos
pueden contener otros objetos. Esto significa que existe un cierto orden
o jerarquía.
En este diagrama, se
aprecian las colecciones
de objetos más relevantes
y su relación jerárquica
Modelo de objetos de Excel
Application (aplicación):
Es el primer objeto en la jerarquía. Representa a la aplicación Excel.
Este objeto actúa como contenedor de los demás objetos de Excel,
por ejemplo: el libro, las hojas de cálculo, las celdas, los gráficos y
muchos otros más.
Por medio de este objeto, se puede acceder a las opciones de Excel
como la de elegir si el cálculo es manual o automático, entre otras.
Workbook (libro de trabajo):
Representa a un libro abierto dentro de la aplicación Excel. Este
objeto se encuentra contenido en el objeto Application y mediante él
se puede, por ejemplo, abrir un libro de trabajo, guardarlo, protegerlo o
enviarlo a imprimir. El objeto Workbook es un miembro de la
colección Workbooks.
•
Modelo de objetos de Excel
Worksheet (las hojas de cálculo):
Siguiendo el orden jerárquico, en tercer lugar tenemos el objeto
Worksheet, que representa las hojas del libro con el que se está
trabajando. Con este objeto se puede, por ejemplo, cambiar el nombre
de las hojas, insertar o eliminar hojas, protegerlas, etc.
Range (celda):
Este objeto es el que representa todas las celdas de la hoja, así como
todas sus columnas y filas, los rangos, la selección de las celdas. Con
este objeto se puede manipular todo lo relacionado con una celda o
grupo de celdas, introducir valores, realizar operaciones, insertar
celdas, entre otras cosas.
Referencia a objetos
Se hace referencia a los objetos de Excel según la posición jerárquica
que éstos ocupan en el modelo de objetos y se emplea el punto (.) para
separar el objeto contenedor de uno o varios objetos. Es decir, el punto
servirá para navegar por la jerarquía de objetos.
Ejemplo:
Para hacer referencia a un libro de Excel llamado Planilla.xlsx, se
escribe la siguiente sentencia:
Application.Workbooks(“planilla.xlsm”)
Si se quisiera hacer referencia a la celda A1 de la hoja Datos del libro
Planilla.xlsx, se debe indicar toda la ruta de la jerarquía del modelo de
objetos:
Application.Workbooks(“planilla.xlsm”).Worksheets(“datos”).Range(“A1”).Select
Para simplificar este procedimiento, se puede omitir la referencia
Application en la mayoría de los casos. Esto es posible debido a que es
el primer objeto de la estructura jerárquica y es el que contiene al resto de
los objetos. Por lo tanto, también se puede hacer referencia a la celda A1,
de una manera más sencilla, por medio del siguiente código:
Workbooks(“planilla.xlsm”).Worksheets(“datos”).Range(“A1”).Select
Además, se puede omitir la referencia específica a un objeto si ese objeto
se encuentra activo. Es decir, si solo hay un libro abierto, se puede omitir
la referencia Workbooks. Del ejemplo anterior, si el único libro abierto es
Planilla.xlsx, se puede hacer referencia a la celda A1 por medio del
siguiente código:
Worksheets(“datos”).Range(“A1”).Select
Más simple aún, si la hoja activa es Datos, también es posible omitir el
objeto Worksheets:
Range(“A1”).Select
Colecciones
Un conjunto de objetos del mismo tipo forma una colección. La
colección de objetos permite trabajar con un grupo de objetos en lugar
de hacerlo simplemente con un solo objeto. Por lo general, el nombre del
objeto de la colección es el plural del nombre de los objetos contenidos
dentro de la colección.
Ejemplo:
La colección denominada Worksheets es una colección de los objetos
Worksheet que están contenidos dentro de un objeto Workbook. Es
decir, que la colección Worksheets es una colección dinámica, ya que irá
variando a medida que se va agregando o eliminando hojas de cálculo al
libro.
Colecciones
Se puede hacer referencia a un objeto específico de una colección si se
coloca el número del índice del objeto o el nombre del objeto de la
colección, usando alguna de las siguientes sintaxis:
Coleccion!Objeto,
Coleccion![Objeto],
Coleccion(“Objeto”),
Coleccion(var),
Coleccion(index),
Donde:
Colección, es el nombre de la colección.
Objeto, es el nombre del objeto.
Var, es una variable del tipo String que contiene el nombre del
Objeto.
Index, representa el número del índice del objeto de la colección.
Ejemplo:
Si se quiere hacer referencia a la primera hoja que se llama datos del
libro planilla.xlsm, se puede escribir algunas de las siguientes
sentencias:
Workbooks(“planilla.xlsm”).Worksheets(“datos”)
O bien,
Workbooks(1).Worksheets(1)
Si el libro activo es planilla.xlsm, la referencia anterior se puede
simplificar así:
Worksheets!Datos
O bien,
Worksheets(1)
Propiedades, métodos y eventos
Los objetos tienen propiedades, métodos y eventos que definen
las características y propiedades del objeto.
Las propiedades son un conjunto de características propias del
objeto que hacen que se distinga de otro objeto, tales como su
nombre, tamaño, color, localización en pantalla.
Por ejemplo, el objeto Range tiene las propiedades Name
(nombre), Value (valor) y Column (columna), entre muchas otras.
Para hacer referencia a las propiedades de cualquier objeto, se
emplea la siguiente sintaxis:
Objeto.Propiedad = valor
Donde:
Objeto, es el nombre del objeto
Propiedad, es el nombre de la propiedad que cambiamos
Valor, se refiere al valor que se le asigna a la propiedad.
Por ejemplo, para asignarle el valor 27 a la celda A2, escribimos la
siguiente sintaxis:
Range(“A2”).Value = 27
Otra opción sería cambiar el tamaño de la fuente de la celda A2,
empleando la siguiente sintaxis:
Range(“A2”).Font.Size = 25
Un método es un conjunto de comportamientos o acciones que puede
realizarse en el objeto. Es decir, que son las órdenes que se le da al
objeto para que haga algo sobre sí mismo.
Por ejemplo, el objeto Range (celda), tiene los métodos Activate
(activar) y Clear (borrar), entre otros.
Para implementar los métodos de un objeto, se utiliza la siguiente
sintaxis:
Objeto.Método
Donde:
Objeto, es el nombre del objeto
Método, es el método que se quiere ejecutar
Por ejemplo, para activar la celda A2 de la hoja activa, se escribe la
siguiente sentencia:
Range(“A2”).Select
Algunos métodos tienen argumentos que a veces son necesarios y
otras, opcionales. Los argumentos nos permiten especificar en forma
más amplia las opciones para la acción que vamos a ejecutar.
Por ejemplo, si se quiere guardar el libro activo con el nombre
Empleado.
xlsm, se escribe la siguiente sentencia:
ThisWorkbook.SaveAs Filename:=”Empleados.xlsm”
Además de las propiedades y los métodos, cada objeto tiene
sus eventos.
Un evento es la acción que puede ser reconocida por un objeto. Por
medio de los eventos, es posible controlar el momento exacto en el
que se desea ejecutar un conjunto de instrucciones (procedimientos).
Ejemplos de eventos son abrir un libro, imprimir, cambiar el
contenido de una celda, hacer clic.
Por ejemplo, el evento más típico de un botón es el Click que se
produce cuando se lo presiona.
Otro ejemplo de un evento frecuente para una hoja de cálculo es
Change, que se produce cada vez que se cambia de celda.
Si se quiere que cada vez que se cierre el libro de trabajo se muestre
un mensaje de despedida del sistema, se tendría que escribir, en el
evento BeforeClose del objeto Workbook, el código siguiente:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Mensaje As String
Mensaje = “Muchas gracias por usar el Sistema de Facturación”
MsgBox Mensaje, vbInformation, “Hasta Pronto”
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) es un
procedimiento que se ejecuta cada vez que se cierra el libro de
trabajo, y la acción, o evento, es dar el mensaje.