Está en la página 1de 65

#SabíasQueEnVBA

62 leciones para aprender a automatizar tareas con macros en Excel

 témporaconsultores
www.temporaconsultores.com

 e-Book y contenidos diseñados y desarrollados por José Manuel Pomares Medrano


está permitida la difusión de este documento siempre que no se modifique su contenido
Página 2 de 65

Índice temático
Grabación de macros
#41 Propiedades aplicables al objeto Range (5)
#01 Macros. Definición e introducción
#42 Propiedades aplicables al objeto Range (6)
#02 La ficha Programador o Desarrollador
#03 Formato de arvhivos de macros
#04 Cuadro de diálogo 'Grabar macro' Ejemplos de macros
#05 Cuadro de diálogo 'Grabar macro' (II) #43 Ejemplo de macro. Copiar y pegar valores
#06 Ejecutar macros desde el cuadro de diálogo 'Macros' #44 Ejemplo de macro. Contador automático
#07 Advertencia de seguridad de macros #45 Ejemplo de macro. Agregar registro a tabla
#08 Archivos confiables
#09 Grabar macros con referencias relativas VBA básico
#10 ¿Cómo es el código de una macro?
#11 Eliminar una macro #46 Eventos en hojas
#12 Guardar una macro en el libro PERSONAL #47 Eventos en libros
#13 VBAProject PERSONAL #48 Depuración de macros. Paso a paso
#14 Asignar macro a botón en la barra 'Inicio rápido' #49 Depuración de macros. Puntos de interrupción
#15 Asignar macro a botón en la barra 'Inicio rápido' (II) #50 Comentarios dentro de código VBA
#16 Asignar macro a botón con una figura #51 Saltos de línea dentro de código VBA

El editor de VBA VBA intermedio


#17 El editor de VBA. Abrir y cerrar el editor #52 Bloques With: ahorrando código
#18 Las ventanas del editor de VBA #53 Variables en VBA. Definición
#19 El explorador de proyectos #54 Variables en VBA. Declaración
#55 Variables en VBA. Asignación de valor o alcance
Introducción al VBA #56 Variables en VBA. Ámbito de actuación
#57 Variables en VBA. Duración
#20 Modelo de objetos #58 IF... THEN... END IF
#21 Métodos #59 IF... THEN... ELSEIF... ELSE... END IF
#22 Propiedades #60 Operadores lógicos OR y AND
#23 Propiedades de lectura #61 La función o cuadro de diálogo 'MsgBox'
#24 Propiedades de escritura #62 La función o cuadro de diálogo 'InputBox'
#25 Referencias a objetos completas o contextuales
#26 Como hacer referencia al objeto Application
#27 Métodos aplicables al objeto Application
#28 Propiedades aplicables al objeto Application
Autor
#29 Cómo hacer referencia al objeto Workbook
#30 Métodos aplicables al objeto Workbook
#31 Propiedades aplicables al objeto Workbook
#32 Cómo hacer referencia al objeto Worksheet
#33 Métodos aplicables al objeto Worksheet
#34 Propiedades aplicables al objeto Worksheet
#35 Cómo hacer referencia al objeto Range
#36 Métodos aplicables al objeto Range
#37 Propiedades aplicables al objeto Range
#38 Propiedades aplicables al objeto Range (2)
#39 Propiedades aplicables al objeto Range (3)
#40 Propiedades aplicables al objeto Range (4)

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 3 de 65

01 #SabíasQueEnVBA
… las Macros son textos con palabras clave (código VBA) para que
Excel realice tareas él solo. Si de momento no dominamos ese
código, Excel nos ayudará: nosotros realizamos las tareas y él las
graba y convierte en código. Después, las ejecutamos cuando
queramos.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 4 de 65

02 #SabíasQueEnVBA
… para trabajar con macros, primero de todo debemos habilitar la
ficha Programador (se llama Desarrollador en algunas versiones
de Excel). Podemos hacerlo desde Archivo/Opciones/Personalizar
cinta de opciones/Activar casilla (en el cuadro, a la derecha).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 5 de 65

03 #SabíasQueEnVBA
… antes de aprender macros, conviene guardar con un formato
.xlsm el libro donde practicaremos. Para ello, haz clic en Archivo/
Guardar como…/Examinar.../Elige ubicación, nombre y tipo de
archivo "Libro de Excel habilitado para macros".

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 6 de 65

04 #SabíasQueEnVBA
… cuando hacemos clic en la ficha Programador/Grabar macro, se
abre un cuadro donde introduciremos nombre, atajo de teclado
asociado y libro donde alojar la macro. En la siguiente lección
seguiremos con la grabación en si misma, después de Aceptar.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 7 de 65

05 #SabíasQueEnVBA
… (sigue de la lección anterior). Haz clic en Aceptar para iniciar
grabación. Casi todo lo que hagamos en Excel queda registrado.
Haz algo (escribe, copia, pega, etc.), clic en Detener macro y
pruéba la macro usando el atajo de teclas asignado.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 8 de 65

06 #SabíasQueEnVBA
… puedes ejecutar las macros grabadas de varias formas. No solo
con atajos de teclado. Otro modo de ejecutar una macro es desde
el cuadro de diálogo Macros. Para ello, haz clic en la ficha
Programador / Macros. Desde ahí también podremos eliminarla.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 9 de 65

07 #SabíasQueEnVBA
… cuando un archivo contiene macros, Excel no abre
definitivamente el archivo hasta que no damos permiso mediante
el botón Habilitar contenido que aparece en una Advertencia de
seguridad en la parte superior de la pantalla.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 10 de 65

08 #SabíasQueEnVBA
… es posible hacer que Excel reconozca todos los archivos como
confiables y no pregunte continuamente si deseamos Habilitar
contenido al abrir un archivo con macros. Haz clic en la ficha
Programador/Seguridad de macros/Activar "Habilitar todas las
macros".

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 11 de 65

09 #SabíasQueEnVBA
… al grabar una macro normal, luego, todo se reproduce igual que
cuando se grabó. Si quisiéramos que las acciones comenzaran
siempre desde la celda activa, deberíamos haber grabado la macro
con el botón Usar referencias relativas (Ficha Programador)
activo.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 12 de 65

10 #SabíasQueEnVBA
… podemos decir, de forma resumida, que una macro está
compuesta por el código de entrada de la macro, el código de
salida, los comentarios y el propio código que se ha grabado
(cuando conozcamos más VBA, podemos modificar ese código o
escribir uno nuevo).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 13 de 65

11 #SabíasQueEnVBA
… no solo desde el cuadro de diálogo Macros de la ficha
Programador podemos eliminar una macro. También lo podemos
hacer desde el editor de VBA. Tan solo tenemos que borrar todo el
código, incluidas las líneas de entrada y de salida de la macro.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 14 de 65

12 #SabíasQueEnVBA
… una macro grabada con la opción Este libro queda almacenada
dentro del archivo de Excel desde el que se grabó. Por lo tanto,
solo estará disponible para ser ejecutada o modificada si tenemos
ese libro abierto.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 15 de 65

13 #SabíasQueEnVBA
… si queremos que una macro esté disponible en todo momento,
independientemente del libro que tengamos abierto, podemos
grabarla en el libro de macros personal. Este libro es creado
automáticamente por Excel la primera vez que grabamos una
macro en él.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 16 de 65

14 #SabíasQueEnVBA
… podemos agregar botones a la Barra de inicio rápido y es
conveniente que las macros grabadas en el libro PERSONAL sean
ejecutadas con esos botones o con atajos de teclado. En la imagen
vemos cómo se puede agregar un botón a esta barra de
herramientas.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 17 de 65

15 #SabíasQueEnVBA
… aprovechando el cuadro de opciones donde se agrega un botón
a la Barra de inicio rápido, podemos modificar el aspecto del icono
y la leyenda que se obtiene al pasar el ratón por encima del futuro
botón.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 18 de 65

16 #SabíasQueEnVBA
… es adecuado ejecutar las macros grabadas en Este libro desde
un botón insertado en nuestra hoja de Excel. Para ello, podemos
crear un botón con una figura (o forma) y después le asignamos la
macro haciendo clic con el botón derecho sobre la forma.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 19 de 65

17 #SabíasQueEnVBA
… el editor de VBA es un programa incluido en Excel al que
podemos acceder mediante ALT+F11 o haciendo clic en la ficha
Programador/Visual Basic. Aquí podemos editar y escribir macros.
El editor se puede cerrar como cualquier ventana o con el atajo
ALT+Q.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 20 de 65

18 #SabíasQueEnVBA
… el editor de VBA tiene posibilidad de mostrar varias ventanas o
paneles. Ya conocemos la ventana principal o ventana de código.
Las otras dos ventanas que podemos ver en la parte izquierda son
el Explorador de proyectos y la Ventana propiedades.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 21 de 65

19 #SabíasQueEnVBA
… el editor de VBA muestra los libros que hay abiertos en un
momento dado en la ventana Explorador de proyectos. Son como
carpetas que pueden expandirse y contraerse y dentro están
representados los módulos y las hojas que hay en el libro.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 22 de 65

20 #SabíasQueEnVBA
… comenzamos las lecciones destinadas a entender el código para
ser capaces de mejorar las macros grabadas. Lo primero que
debemos entender es el modelo básico (jerarquía) de objetos de
Excel: Application > Workbooks > Worksheets > Range

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 23 de 65

21 #SabíasQueEnVBA
… los Objetos son como el sujeto. Los Métodos son como el verbo.
Un Método indica lo que debe hacer un Objeto. Cada Objeto tiene
Métodos propios, como cada sujeto tiene acciones propias.
Ejemplo: Libro y Juan tienen verbos aplicables distintos.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 24 de 65

22 #SabíasQueEnVBA
… ya conocemos qué son Objetos y qué son Métodos en VBA.
Ahora, es turno de conocer las Propiedades.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 25 de 65

23 #SabíasQueEnVBA
… las Propiedades de los objetos pueden ser solo de lectura o de
lectura y escritura. Es decir, podremos modificar su valor
(Propiedades de lectura y escritura) o no (Propiedades de solo
lectura).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 26 de 65

24 #SabíasQueEnVBA
… a las Propiedades de solo lectura no se les puede asignar ningún
valor. Por ejemplo, la versión de Excel es una Propiedad más de
Application (Propiedad Version), pero no podemos cambiarla, por
motivos obvios.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 27 de 65

25 #SabíasQueEnVBA
… en principio, al escribir código VBA, para identificar a un objeto
necesitaríamos escribir toda la cadena de jerarquía de ese objeto.
En esta lección vamos a ver cómo casi nunca va a ser necesario…

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 28 de 65

26 #SabíasQueEnVBA
… para referirnos a Excel mediante código lo hacemos mediante el
objeto Application. Después, escribimos un punto y emerge una
lista de las Propiedades y Métodos aplicables. Ejemplo:
Application.Calculate (Excel realiza un recálculo de fórmulas).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 29 de 65

27 #SabíasQueEnVBA
… en esta lección vamos a resumir, en la imagen adjunta, los
Métodos más interesantes para utilizar con Application. Algunos
de esos Métodos solo los podemos utilizar si los aprendemos aquí,
pero NO los podemos obtener con la grabadora de macros.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 30 de 65

28 #SabíasQueEnVBA
… en esta lección vamos a resumir, en la imagen adjunta, las
Propiedades más interesantes utilizable con Application. Algunas
de esas Propiedades solo las podemos utilizar si las aprendemos
aquí, pero NO las podemos obtener con la grabadora de macros.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 31 de 65

29 #SabíasQueEnVBA
… para referirnos a un libro de Excel mediante código, lo podemos
hacer de distintas formas. Por ejemplo, si se trata del libro donde
escribimos el código, el nombre de Objeto es ThisWorkbook. En la
imagen adjunta hay un resumen más completo.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 32 de 65

30 #SabíasQueEnVBA
… En esta lección vamos a resumir, en la imagen adjunta, los
Métodos más interesantes para utilizar con el objeto Workbook
(da igual como hayamos hecho referencia... ActiveWorkbook,
ThisWorkbook, Workbooks("MiLibro")...etc.).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 33 de 65

31 #SabíasQueEnVBA
… El objeto Workbook tiene Propiedades que nos dan a conocer
características suyas. Las Propiedades que leen las características
de un objeto son Propiedades de lectura. También existen
Propiedades de escritura y las que son de lectura-Escritura.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 34 de 65

32 #SabíasQueEnVBA
… para referirnos a las hojas de un libro de Excel, utilizamos el
objeto Worksheet en cuaquiera de sus formas. Por ejemplo, si se
trata de la hoja activa en este momento, utlizamos Activesheet.
Pero hay otras posibilidades que mostramos en la imagen adjunta.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 35 de 65

33 #SabíasQueEnVBA
… en la imagen adjunta se resumen los Métodos más importantes
aplicables al objeto Worksheet, independientemente de cómo
hayamos hecho referencia al mismo (ActiveSheet,
Worksheets("MiHoja"), Worksheets(1)…).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 36 de 65

34 #SabíasQueEnVBA
… el objeto Worksheet tiene Propiedades que muestran
características suyas. Las propiedades no siempre son sinónimo de
características, a veces hacen referencia a una parte del objeto
(aunque, de alguna forma, una parte de un objeto es una
característica).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 37 de 65

35 #SabíasQueEnVBA
… hay muchas formas de referirnos al objeto Range(celda o grupo
de celdas). Lo interesante es hacerlo en cada momento de la forma
que más nos convenga en cuanto a claridad del código y a rapidez
en la escritura.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 38 de 65

36 #SabíasQueEnVBA
… podemos realizar acciones con macros sobre celdas o rangos de
celdas mediante los Métodos: seleccionar, leer valores, copiarlos,
pegarlos en otras hojas o libros, etc. En la imagen adjunta podemos
ver algunos ejemplos:

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 39 de 65

37 #SabíasQueEnVBA
… vamos a conocer las Propiedades más importantes con las que
podemos trabajar si nos referimos al objeto Range. Con toda
lógica, son muchas, puesto que Range es el objeto más utilizado en
VBA. En la imagen adjunta va la primera entrega (PARTE 1)

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 40 de 65

38 #SabíasQueEnVBA
… continuamos con la PARTE 2 de las Propiedades que son
aplicables al Objeto Range. En la imagen adjunta comentamos con
ejemplos algunas Propiedades tan importantes como
CurrentRegion y End, las cuales nos ayudarán mucho a la hora de
referirnos a celdas:

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 41 de 65

39 #SabíasQueEnVBA
… continuamos con la PARTE 3 de las Propiedades que son
aplicables al Objeto Range. En la imagen adjunta comentamos
algunas Propiedades y aprenderemos a introducir una fórmula,
mediante VBA, con la Propiedad FormulaLocal.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 42 de 65

40 #SabíasQueEnVBA
… continuamos con la PARTE 4 de las Propiedades que son
aplicables al Objeto Range. En la imagen adjunta comentamos la
Propiedad FormulaR1C1 (que es la que utiliza la grabadora de
macros) y algunas más como Interior y Locked.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 43 de 65

41 #SabíasQueEnVBA
… podemos aplicar formatos a celdas desde VBA. En la imagen
adjunta explicamos como utilizar la Propiedad NumberFormat y
cuáles son los códigos posibles a aplicar para conseguir los
distintos formatos. También explicamos la Propiedad Offset(f,c).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 44 de 65

42 #SabíasQueEnVBA
… con las Propiedades que aprendemos en esta ocasión
terminamos una colección de las más interesantes. En la imagen
adjunta se comentan las Propiedades RowHeight, Rows y Value.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 45 de 65

43 #SabíasQueEnVBA
… Una vez vistos los métodos y las propiedades de los principales
objetos en VBA, ya podemos comenzar a componer macros
aplicando los trozos de código conocidos. En la imagen adjunta van
las primeras macros de ejemplo. Comenzamos por unas sencillas:

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 46 de 65

44 #SabíasQueEnVBA
… Vamos a proporcionar una macro muy interesante: se trata de
generar un contador (números sucesivos) con VBA. Es decir,
introducir un número sucesivo al anterior, en la siguiente celda
después de la última que tenga datos en una columna de una tabla.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 47 de 65

45 #SabíasQueEnVBA
… caso típico: una tabla en la que vamos agregando registros, pero
queremos que algunos datos se establezcan por defecto. Uno de
los campos es un contador de números:

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 48 de 65

46 #SabíasQueEnVBA
… además de botones creados con figuras, atajos de teclado y
botones en la barra de inicio rápido, podemos ejecutar macros de
forma automática cuando se produce un evento en una hoja. Solo
tenemos que copiar el código y pegarlo en un módulo de hoja.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 49 de 65

47 #SabíasQueEnVBA
… también es posible ejecutar macros automáticamente nada más
abrir un libro de Excel. Para ello, debemos grabar la macro deseada
y copiar el código en el evento Open del libro (o bien escribirla
directamente en el evento).

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 50 de 65

48 #SabíasQueEnVBA
… cuando una macro falla debemos depurarla. Depurar una macro
es intentar averiguar dónde se interrumpe repentinamente.
Vamos a conocer la técnica más básica de depuración de macros,
que no es otra que ejecutarla paso a paso.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 51 de 65

49 #SabíasQueEnVBA
… una técnica de depuración de macros que se utiliza
frecuentemente son los Puntos de interrupción. Estos, son marcas
que se agregan haciendo clic en la barra izquierda del editor de
código. Al ejecutar una macro, esta se detiene en cada marca.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 52 de 65

50 #SabíasQueEnVBA
… una ayuda enorme para la programación en VBA es la utilización
de los Comentarios. Estos, son líneas de texto que introducimos a
modo de recordatorio para que, después de escribir el código,
conozcamos alguna circunstancia digna de mención.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 53 de 65

51 #SabíasQueEnVBA
… es necesario conocer la instrucción que nos permite seguir
escribiendo el código de una línea, en la siguiente. Veremos con
frecuencia estos códigos, puesto que la grabadora de macros los
utiliza, pero nosotros también podemos hacerlo.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 54 de 65

52 #SabíasQueEnVBA
… cuando tenemos que escribir varias líneas de código que tienen
el mismo comienzo, podemos crear un comienzo común para
todas las líneas y de esta forma nos ahorramos escribir mucho
código, además de que VBA lo ejecutará más rápido.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 55 de 65

53 #SabíasQueEnVBA
… una variable es un contenedor polivalente y provisional que
puede albergar distintos valores u objetos de una aplicación. Las
variables representan trozos de la memoria RAM de nuestro
ordenador, que es donde se alojan los valores u objetos.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 56 de 65

54 #SabíasQueEnVBA
… la declaración de una variable no es obligatoria en VBA, pero sí
es muy recomendable. Veamos por qué y cómo se hace.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 57 de 65

55 #SabíasQueEnVBA
… una vez que hemos declarado una variable, lo siguiente es
asignarle un valor o un objeto. Para asignar un valor a una variable
es suficiente escribir el signo = después de la misma, seguido del
valor o del objeto que queremos asignar.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 58 de 65

56 #SabíasQueEnVBA
… ya sabemos declarar una variable y asignarle valor. Ahora vamos
a dar respuesta a las preguntas: ¿hasta cuándo conserva su valor
una variable?. Hablamos del ámbito de actuación y
reconocimiento de una variable.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 59 de 65

57 #SabíasQueEnVBA
… ahora vamos a ocuparnos de la duración de una variable. Este
concepto da respuesta a la pregunta: ¿Hasta cuando conserva su
valor una variable?

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 60 de 65

58 #SabíasQueEnVBA
… de forma parecida a la función SI de Excel, en VBA podemos
utilizar una estructura de código que contiene las palabras clave:
IF… THEN… END IF. En otras palabras: SI…(algo es cierto)…
ENTONCES….(devuelve esto)…. FINAL

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 61 de 65

59 #SabíasQueEnVBA
… una variante a IF…THEN…END IF es IF… THEN… ELSE… END IF o
bien IF… THEN… ELSEIF… ELSE… END IF . Esta última equivale a
anidar una o varias funciones SI dentro de otras. Es posible utilizar
todos los ELSEIF que necesitemos.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 62 de 65

60 #SabíasQueEnVBA
… otra variante a IF…THEN…ELSE..END IF es la posibilidad de incluir
operadores como OR y AND (en Excel serían las funciones O, Y).
Esto nos permitirá evaluar más de una prueba a la vez.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 63 de 65

61 #SabíasQueEnVBA
… en multitud de ocasiones es necesario que una macro
comunique algo al usuario. En este artículo vamos a hacer que VBA
muestre un cuadro de diálogo (llamado MsgBox), Con esto,
daremos un plus de profesionalidad a nuestras hojas de cálculo.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 64 de 65

62 #SabíasQueEnVBA
… es posible mostrar un cuadro de diálogo para que el usuario
interactue introduciendo algún dato. Ese dato se recoge en una
variable y posteriormente lo podremos utilizar en distintas
situaciones. Hablamos del cuadro de diálogo InputBox.

Subir al índice

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522
Página 65 de 65

José Manuel Pomares Medrano


• Diplomado en Ciencias Empresariales
• Formador de LinkedIn Learning en:
o Excel avanzado y VBA
o PowerPoint
o Word
o Outlook
• Formador en MBA Escuela de negocios FEDA. Asignatura: Excel para finanzas
• Consultor especialista en control de gestión para PYMES
• Desarrollador de cuadros de mando económico – financieros y aplicaciones a
medida para PYMES.
• Blogger en
o www.temporaexcel.blogspot.com
o www.temporacm.blogspot.com
o www.temporapresentaciones.blogspot.com
• Administrador del foro: www.temporaexcel.forogratis.es
• Perfil en facebook: José Manuel Pomares Medrano
• Perfil en Twitter: @josempomares
• Perfil en LiinkedIn: José Manuel Pomares Medrano

Subir al índice
eBook diseñado y producido por José Manuel Pomares Medrano. © 2018.

José Manuel Pomares Medrano Clara Vega Caballero


MADRID – ALICANTE – ALBACETE
josempomares@temporaconsultores.com claravega@temporaconsultores.com
TOLEDO – MURCIA - VALENCIA
669689399 660479522

También podría gustarte