Está en la página 1de 21

Introducción a Macros, parte II

Programación y Tratamiento de datos para la Gestión


http://progra.usm.cl
UTFSM

INF-130 (UTFSM) Programación y TDG


VBA
Objetos - Jerarquía
Cuando se abre el programa Excel, en realidad se está abriendo el objeto Application y al mismo tiempo estás abriendo
un libro en blanco representado por el objeto Workbook. Este libro contiene una hoja activa, representado por el objeto
Worksheet, que a su vez contiene un conjunto de celdas, representado por el objeto Range.

Aplicación
(Application)

Libro
(Workbook)

Hoja
(Worksheet)

Rango
(Range)

INF-130 (UTFSM) Programación y TDG


VBA
Objetos - Jerarquía
Gracias a esta jerarquía se puede hacer referencia a cualquiera de los objetos siguiendo esta posición que ocupa
dentro del modelo de objetos.
Por ejemplo, para hacer referencia al libro “Ventas anuales.xlsx” habría que hacerlo de la siguiente forma:

Si quisieras seleccionar la celda B2 de la hoja “Totales” del libro “Ventas anuales.xlsx”, tendrías que hacerlo siguiendo
toda la jerarquía:

INF-130 (UTFSM) Programación y TDG


VBA
Objetos - Jerarquía
La instrucción anterior se puede simplificar en la mayoría de los casos omitiendo el objeto Application. Esto es posible
porque la instrucción está creada dentro de Excel (Application).

Si el objeto de mayor rango es el objeto activo, se puede omitir de la referencia. Si se tiene activo el libro “Ventas
anuales.xlsx”, se podría seleccionar la celda B2 de la siguiente forma:

Bajando un poco más por la jerarquía, si la hoja activa fuese “Totales”, se podría seleccionar la celda B2 así:

INF-130 (UTFSM) Programación y TDG


VBA
Propiedades, métodos y eventos de los Objetos en Excel
Anteriormente se dijo que la programación orientada a objetos se basaba en la modificación de las propiedades y
métodos de los objetos.

Objeto

Propiedades Métodos Eventos

INF-130 (UTFSM) Programación y TDG


VBA
Propiedades, métodos y eventos de los Objetos en Excel
Las propiedades son las características propias del objeto, que hace que se distinga de otros objetos (nombre, tamaño,
color, ubicación en la pantalla…)

Por ejemplo, propiedades del objeto Range pueden ser Name (nombre), Value (valor) y Column (columna), entre muchos
otros.

El uso de las diferentes propiedades te permitirá modificar las características del objeto. Por ejemplo, se puede utilizar
la propiedad Value para modificar el valor que se muestra en una celda. También es posible utilizar las propiedades para
modificar el aspecto de un objeto. Por ejemplo, la propiedad Borders permite cambiar el borde de la celda.
Por ejemplo, si se quiere cambiar el tipo de fuente al objeto Range, se debe usar la propiedad Font. Como las fuentes
tienen diferentes nombres, tamaños o estilos, existen otras propiedades que califican a la propiedad Font.

INF-130 (UTFSM) Programación y TDG


VBA
Propiedades, métodos y eventos de los Objetos en Excel
Por ejemplo, si se quiere cambiar el tamaño de fuente a la celda B2, se debe escribir lo siguiente:

De esta forma, si se quiere seleccionar la celda A2 de la hoja activa, se tendría que usar la siguiente instrucción:

Por ejemplo, si quieres guardar el libro actual con el nombre “Ventas 2019”, se tiene que utilizar la siguiente
instrucción:

INF-130 (UTFSM) Programación y TDG


VBA
“Hola Mundo”
Dentro del Editor debes hacer clic derecho sobre el título del proyecto y dentro del menú seleccionar la opción
Insertar y posteriormente Módulo.

INF-130 (UTFSM) Programación y TDG


VBA
“Hola Mundo”
Se creará la sección Módulos y dentro de la misma se mostrará el módulo recién creado. Puedes saber que el
módulo está abierto porque su nombre se muestra en el título entre corchetes.

Si el módulo no está abierto solamente deberás hacer doble clic sobre él.

INF-130 (UTFSM) Programación y TDG


VBA
“Hola Mundo”
Luego, posicionarse en el área de código y escribir las siguientes instrucciones:

STOP!
¿Qué es Sub y End Sub?

INF-130 (UTFSM) Programación y TDG


VBA
Sub Rutinas
Sub que es la abreviación de la palabra subrutina. Una subrutina no es más que un conjunto de
instrucciones que se ejecutarán una por una hasta llegar al final de la subrutina que está especificado
por la instrucción End Sub (Similar function en Trinket).

Las subrutinas ayudan a agrupar varias instrucciones de manera que se pueda organizar
adecuadamente el código. Una subrutina siempre tiene un nombre el cual debe ser especificado justo
después de la instrucción Sub y seguido por paréntesis.

INF-130 (UTFSM) Programación y TDG


VBA
“Hola Mundo” – Ahora sí
Para probar el código hay que pulsar el botón Ejecutar que se encuentra dentro de la barra de
herramientas.

INF-130 (UTFSM) Programación y TDG


VBA
Usando propiedades y métodos
Justo después del nombre del objeto colocamos un punto seguido del nombre de la propiedad o del
método. Observa este ejemplo donde se usa la propiedad Value para la celda A1:

De esta manera asignamos una cadena de texto al valor de la celda A1. Ahora bien, si se quiere borrar
ese valor que se acaba de de colocar en la celda podemos utilizar el método Clear de la siguiente
manera:

INF-130 (UTFSM) Programación y TDG


VBA
ActiveCell

ActiveCell sirve para referirse a la celda actualmente seleccionada en una hoja de cálculo. Siempre que se
haga click en cualquier celda, esta automáticamente se convertirá en la ActiveCell.

En el siguiente código, se hace mención a la hoja “Hoja1”, la que va a ser utilizada mediante el método
Activate. Luego con Range, activamos la posición en la celda B5. Con esto sabemos que la ActiveCell
ahora es B5, y sobre esa celda se aplica la propiedad “negrita” (bold) a la fuente.

INF-130 (UTFSM) Programación y TDG


VBA
ActiveCell
También se pueden aplicar estas propiedades sobre un rango de celdas.

INF-130 (UTFSM) Programación y TDG


VBA
R1C1
R1C1 es una propiedad para ubicar datos y fórmulas. R se refiere a Row (fila) y C a columna (Column).
Entendamos esto con unos ejemplos:
1. Coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código (estilo A1):

INF-130 (UTFSM) Programación y TDG


VBA
R1C1
2. Cambie la última línea por:

Explicación: la celda D4 hace referencia a la celda B3 (fila 3, columna 2). Esta es una referencia
absoluta (equivalente al símbolo de $ delante del número de fila y la letra de la columna).

INF-130 (UTFSM) Programación y TDG


VBA
R1C1
3. Cambie la última línea por la siguiente línea de código (estilo R [1] C [1]):

Explicación: la celda D4 hace referencia a la celda B3 (una fila arriba y 2 columnas a la izquierda). Esta es una
referencia relativa. Esta línea de código da exactamente el mismo resultado que la línea de código utilizada en el
paso 1.
¿Por qué es importante entender el formato R1C1? Porque este es el código que genera la grabadora cuando escribimos
fórmulas en ese proceso (revisar código generado en la grabadora).

INF-130 (UTFSM) Programación y TDG


VBA
With… End With

Permite ejecutar un conjunto de instrucciones sin tener que volver a hacer referencia al mismo objeto.
Esta estructura es entregada con frecuencia por el grabador de macros.
La sintaxis de With en VBA es la siguiente:

With object
[ Instrucciones ]
End With

INF-130 (UTFSM) Programación y TDG


VBA
With… End With
Vea el siguiente ejemplo :

Como se puede observar, en este caso se está utilizando With en Vba para lograr que la celda A1 tenga
el texto indicado y ese texto se encuentre en negritas. Es equivalente al siguiente ejemplo:

INF-130 (UTFSM) Programación y TDG


VBA
Objeto Font y Selection.Font
Font contiene los atributos de fuente (como el nombre, el tamaño y el color de fuente) de un objeto.
La siguiente instrucción aplica formato de negrita a la selección:

En el siguiente ejemplo veremos cómo seleccionar la celda, asignar un valor y además aplicar
propiedades de Font:

INF-130 (UTFSM) Programación y TDG

También podría gustarte