TOP

VBA-Lección 1. ¿Qué es VBA. Conceptos básicos.

En esta sección, consideraremos qué es VBA, ya que las macros están escritas en él.

¿Qué es VBA?

VBA es un lenguaje de programación integrado (decodificado como Visual Basic for Applications) que fue desarrollado por Microsoft. Este lenguaje no es independiente, sino que está destinado únicamente a la automatización de procesos en el paquete de MS Office. VBA es muy utilizado en Excel, también en Access, Word y otras aplicaciones del paquete.

VBA es un lenguaje de programación simple que cualquiera puede aprender. Una vez que lo aprenda, podrá dar comandos Excel, qué hacer con columnas, filas, valores de celda, mover/agregar/ordenar hojas, generar mensajes preprogramados, escribir sus propias fórmulas y funciones, y más. La esencia del lenguaje es operar sobre los objetos.

Para trabajar con el código VBA, necesitamos un editor (Visual Basic Editor), que ya está instalado en Excel por defecto. Puede abrirlo presionando "Alt+F11".

Objetos (Objects)

Entendamos qué es un objeto en VBA.

VBA Un objeto es un elemento, una parte estructural de Excel, a saber: libro, hoja, rango, celda.

Los objetos VBA tienen una jerarquía, es decir, están subordinados entre sí. Esquemáticamente, la estructura de jerarquía en Excel se puede representar de la siguiente manera:

El objeto más importante es Application, que corresponde a la propia aplicación Excel. Luego viene Workbook (libro), Worksheet (hoja), Range (rango o celda individual).

Por ejemplo, para hacer referencia a la celda "A1" en la hoja de trabajo, necesitaríamos escribir la siguiente ruta, teniendo en cuenta la jerarquía:

Application.Workbooks("Archivo").Worksheets("Hoja1").Range("A1").

Por lo tanto, aprendimos a referirnos al objeto más pequeño en Excel - celdas.

Colecciones (Collections)

A su vez, los objetos VBA pertenecen a "colecciones".

VBA Una colección es un grupo (array) de objetos de la misma clase (conjunto de libros, hojas, etc.). Sí, todos los objetos Worksheet son miembros de la colección Worksheets. A su vez, la colección también es un objeto.

Los mismos objetos pueden pertenecer a varias colecciones. Por ejemplo, los objetos Worksheet también pertenecen a la colección Sheets. La colección Sheets contiene todas las hojas que están en el libro, tanto gráficos, que también se consideran hojas (Chart), como hojas de datos (Worksheet).

Las siguientes colecciones existen en VBA Excel:

  • Workbooks (contiene objetos Workbook)
  • Worksheets (objetos Worksheet)
  • Sheets (objetos Worksheet y Chart)
  • Rangos (objetos Range)
  • ChartObjects (objetos ChartObject)
  • PivotTables (objetos PivotTable)
  • y muchos otros...
  • Propiedades (Properties)

    Cada objeto en VBA tiene propiedades. Por ejemplo, un objeto Range tiene una propiedad Value o Formula.

    Worksheets("Hoja1").Range("A1").Value o Worksheets("Hoja1").Range("A1").Formula

    En este ejemplo, la propiedad muestra el valor ingresado en la celda o la fórmula ingresada.

    Además, a través de la propiedad Formula, no solo puede obtener la fórmula, sino también escribirla:

    MsgBox Range("A1").Formula - recibiremos un mensaje con una fórmula en la celda "A1";

    Range("B12").Formula = "=2+6*100" - ingrese la fórmula "=2+6*100" en la celda "B12".

    Métodos (Methods)

    Ahora veamos cómo podemos manipular el contenido de un rango o celda. Para esto, existen los llamados métodos (comandos "qué hacer") en VBA. Al escribir código, los métodos se separan del objeto con un punto, por ejemplo:

    Range("A1").Select o Cells(1,1).Select

    Este método especifica seleccionar (Select) la celda "A1".

    A continuación, eliminemos el valor de esta celda. Para ello escribiremos el siguiente código.

    Selection.ClearContents

    Aquí el programa "toma" lo que seleccionamos (Selection) y borra su contenido (ClearContents).