Ir al contenido principal

Seminario Macros Excel Gratuito 6ª Entrega (Qué es VBA y Jerarquía de Objetos)

VBA es un lenguaje de programación que viene integrado en las herramientas de Microsoft Office.

Lo podemos encontrar en:
-Word
- Excel
- Power Point
- Outlook
- Access

Entre otros.




Uno de los mejores programas para aprender VBA es Microsoft Excel y su gran ventaja está en la grabadora de programación o de Macros que lleva incluido a diferencia de otros programas del paquete Office.

Este lenguaje es del tipo POO (Programación Orientada a Objetos). Un libro de Excel está lleno de objetos que se organizan mediante una jerarquía. La programación orientada a objetos se basa en la modificación de las propiedades y los métodos de estos objetos para que realicen las acciones que deseemos.

En el mundo real, un objeto es algo tangible, como puede ser un coche o un gato y se identifica porque tiene propiedades y métodos. Se considera que las propiedades son las características y los métodos son las acciones que puede realizar. En un coche, una propiedad sería el color y un método sería la posibilidad de girar el volante hacia la izquierda o acelerar o frenar y un largo etc.

Excel cuenta con más de 250 objetos. Cada elemento de Excel es un objeto.

  • El propio Excel (Application)
  • Un libro (Workbook)
  • Una hoja (Worksheet) 
  • Un conjunto de celdas (Range)
  • Un gráfico (Chart)
  • Una tabla dinámica (PivotTable)
  • Un dibujo (Shape)

Arriba hemos enumerado unos cuantos.

Muchos de los objetos se agrupan en colecciones.
En el caso real del objeto coche, una colección representaría todos los coches del mundo.
En cuanto a Excel, la colección Workbooks haría referencia a todos los libros de Excel abiertos.

Las colecciones suelen llevar una s al final.

Shapes sería colección mientras que Shape es objeto.

Cuando se inicia el programa Excel estamos abriendo el objeto Application y al mismo tiempo disponemos de un libro en blanco, es decir, el objeto Workbook, el cual dispone de una hoja activa conocida como Worksheet que en su interior tiene un conjunto de celdas que queda representado por el objeto Range.

Aparece entonces el concepto de Jerarquía que vemos aquí:


Siguiendo esta jerarquia podemos hacer referencia a cualquier objeto teniendo en cuenta también las colecciones de objetos. Recordad que una colección es algo normalmente terminado en s que se corresponde con el nombre del objeto. Workbooks de Workbook

Para entender esto mejor si queremos hacer referencia a un libro llamado GastosGenerales2019.xlsm en VBA pondremos algo así:

Application.Workbooks("GastosGenerales2019.xlsm")

Como vemos en la jerarquía los objetos se separan con puntos y las comillas y paréntesis son elementos de sintaxis del propio lenguaje.

Y si quisiéramos cambiar el valor en el libro anterior a la celda B2 de la hoja misGastos la sintaxis es:

Application.Workbooks("GastosGenerales2019.xlsm").Worksheets("misGastos").Range("B2").Value=300

Pero como estamos escribiendo el código dentro de Excel podemos omitir el objeto Application:

Workbooks("GastosGenerales2019.xlsm").Worksheets("misGastos").Range("B2").Value=300

Y si el código está dentro del fichero GastosGenerales.... tambien omitimos el objeto libro:

Worksheets("misGastos").Range("B2").Value=300

Y por ultimo si estamos en una hoja Activa podemos bajar mas:

Range("B2").Value=300

Es importante saber que no todo tipo de ordenes pueden escribirse así, por ejemplo si en vez de asignar un valor a una celda queremos seleccionar una celda no podemos escribir esto:

Application.Workbooks("GastosGenerales2019.xlsm").Worksheets("misGastos").Range("B2").Select

Ya que da error salvo que estemos en la hoja misGastos y ejecutemos la macro ya que solo busca en la hoja activa.

Tendría que haber dividido la macro en dos ordenes, primero activar la hoja y luego seleccionar la celda:
Application.Workbooks("GastosGenerales2019.xlsm").Worksheets("misGastos").Activate
Range("B2").Select

También funciona si llamo a la macro desde otro libro.

Para aclarar esto disponemos del siguiente vídeo:



La siguiente entrega la puede ver en nuestro blog Blog CDEI Knotica



Comentarios

Entradas populares de este blog

Chrome: desactivar la opción “Abrir siempre archivos de este tipo”

En Chrome, al descargar un archivo aparecen tres opciones en el desplegable de la barra de descargas:

Uso del Dolar ($) en Excel

Es uno de los grandes desconocidos de los usuarios de Excel incluso algunos que llevan usando esta herramienta durante un largo periodo de Tiempo. La idea de su uso es evitar que al copiar un fórmula la referencia a una determinad celda cambie. Veamos un ejemplo: Tenemos 6 columnas y en la D una fórmula que multiplica el precio por la cantidad de un producto, si copiamos dicha fórmula se va adaptando a los diferentes productos y hasta aquí todo ok. Pero que pasa si queremos hacer la fórmula del IVA, es decir el 21% del importe bruto. Lo que suele hacer la mayoría de los usuarios que no conocen el uso del $ es hacer la siguiente fórmula en E2: =D2*21% Esto incumple la primera norma de creación de fórmulas que dice: En una fórmula nunca se deben incluir valores constantes salvo que se sepa que nunca van a poder cambiar y el iva es algo que puede y de echo ha variado a lo largo del tiempo. Por lo tanto si queremos hacer una hoja más versátil deberemos colocar el porcentaje de iva en una c...

Gif animado en Camtasia studio 8

 Si deseamos colocar un gif animado en Camtasia Studio 8 observamos que no es posible de forma directa ya que al importarlo lo incluye dentro de imágenes. El truco es convertirlo en un fichero AVI y para ello no hay nada como disponer de la página de conversión: Online Convert Al incorporarlo a nuestra película lo considera lógicamente un clip de video Et voilá