PDF de programación - Curso de programación en VBA para Excel - Capítulo 1. Introducción y primeros pasos

<<>>
Imágen de pdf Curso de programación en VBA para Excel - Capítulo 1. Introducción y primeros pasos

Curso de programación en VBA para Excel - Capítulo 1. Introducción y primeros pasosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 11 de Marzo del 2018)
1.625 visualizaciones desde el 11 de Marzo del 2018
267,4 KB
7 paginas
Aula Macedonia

Curso de Programación en VBA para Excel

Artículo realizado por
Iñaki Ecenarro. 

Capítulo 1. Introducción y primeros pasos

Este  curso  va  dirigido  a  aprender  a  programar  en  Visual  Basic  for  Applications  (VBA)  para  la  hoja  de  cálculo
Microsoft Excel. El VBA es muy similar en el resto de herramientas de Microsoft Office (Word, PowerPoint, etc), por
lo  que  los  conocimientos  aquí  adquiridos  pueden  aplicarse  en  esos  otros  programas.  Además  el  VBA  es  también
muy similar al Visual Basic de verdad, por lo que puede ser una puerta de acceso a la programación de aplicaciones
(utilizando Visual Basic) para personas sin conocimientos previos de programación.

Desde  los  primeros  tiempos  de  las  hojas  de  cálculo,  con  las  míticas  primeras  versiones  de  Lotus  1­2­3,  existían
macros  (el  nombre  completo  era  macro­comandos),  que  servían  para  automatizar  tareas  repetitivas.  En  aquellos
tiempos las macros se limitaban básicamente a simular pulsaciones del teclado el usuario, es decir, al ejecutar una
macro era como si el usuario estuviese pulsando las teclas que la macro "pulsaba", lo que a pesar de su sencillez
permitía  hacer  cosas  interesantes.  Con  el  tiempo  las  macros  fueron  evolucionando,  pudiéndose  incluir  en  ellas
sentencias que no se traducían en pulsaciones de teclas, aunque todo ello se hacía introduciendo fórmulas en las
celdas de la hoja de cálculo, lo que dejaba bastante que desear. Con la llegada de Excel 5.0, Microsoft introdujo las
macros basadas en el popular Visual Basic, creando lo que ha llamado Visual Basic for Applications, compartido por
todas  las  aplicaciones  de  Microsoft,  y  que  añade  a  las  mismas  unas  posibilidades  enormes  de  personalización  y
creación  de  soluciones  a  medida  de  las  necesidades  de  cada  usuario.  De  hecho,  creo  que  el  nombre  "macro"
debería dejar de utilizarse en favor de otros conceptos más relacionados con los lenguajes de programación (como
rutinas, subrutinas y funciones), pero yo creo que se mantiene por razones históricas.

Lo primero que tuve que decidir antes de escribir este curso sobre programación en Excel fue hacia
quién iba a ir dirigido: por un lado están todas las personas que dominan uno o más lenguajes de
programación,  y  con  poco  esfuerzo  pueden  aprender  los  detalles  específicos  de  Visual  Basic  for
Applications  para  Excel.  Por  otro  lado  están  todas  aquellas  personas  que  utilizan  Excel
simplemente como una hoja de cálculo que hace operaciones aritméticas, que desaprovechan toda
la potencia de Excel. He decidido que este curso va a ir dirigido a estos últimos, porque creo que
es el perfil del usuario habitual de Excel, y aquellas personas que estén en el primer grupo pueden también utilizar el
curso, deteniéndose en las partes que expliquen cosas específicas de Excel y saltándose otras como los conceptos
generales de programación.

Una nota sobre versiones de Excel: la última versión de Excel es la de Office 97 (llamada Excel 97), aunque todavía
existen  muchos  sitios  en  los  que  se  utiliza  la  versión  de  Office  95  (Excel  95).  Casi  todo  lo  que  vamos  a  hacer
funciona en las dos versiones, y en los casos en los que no sea así procuraré indicarlo.

El mejor método para aprender VBA es utilizar la opción de grabar macros de Excel: todo lo que hagamos mientras
Excel está grabando una macro se traduce en la instrucciones de VBA necesarias para repetir nuestras acciones.

Vamos a utilizar esa opción para crear nuestra primera macro. Primero selecciona la opción "Herramientas, Grabar
Macro",  y  escribe  algo  en  la  celda  A1.  Luego  selecciona  la  opción  "Herramientas,  Grabar  macro...,  Detener
grabación" para que Excel debe de grabar. Para ver la macro que acabamos de crear el método es distinto en Excel
95 y Excel 97: en Excel 95, las macros se almacenan en módulos, que son como una hoja más del libro, podemos
ver una hoja llamada "Módulo1" en las pestañas que están en la parte inferior. En Excel 97, para escribir macros se
utiliza el Visual Basic Editor, y accedemos a él mediante la opción Herramientas, Macros, Abrir Editor Visual Basic.
En cualquiera de las dos versiones veremos que Excel ha escrito algo parecido a esto:

Sub Macro1()
ActiveCell.Formula = "Mi primera macro"
Range("A2").Select
End Sub

Esta  rutina  escribe  "Mi  primera  macro"  en  la  celda  activa  y  luego  se  desplaza  a  la  celda  inferior,  en  este  caso  la
celda A2 (esto ocurre porque Excel tiene por defecto la opción de que cuando pulsas "Intro" el cursor se desplaza a
la celda de abajo, y Excel también ha incluido eso en la macro).

Vamos a ir poco a poco. La primera línea define una subrutina llamada Macro1 (es el nombre que le ha puesto Excel,
pero  podemos  cambiarlo  a  lo  que  nosotros  queramos).  Cada  rutina  que  escribamos  debe  empezar  con  Sub  y
terminar con una sentencia "End Sub".

Antes  de  explicar  la  segunda  línea,  una  explicación  sobre  los  "objetos":  un  objeto  es  una  variable  de  VBA  que
representa cualquier elemento de Excel. Por ejemplo, para representar un rango de una hoja de cálculo se utiliza el
objeto  Range,  o  para  representar  una  hoja  de  cálculo  se  utiliza  el  objeto  Worksheet.  En  nuestra  macro  estamos
utilizando el objeto "ActiveCell", que es un objeto de tipo Range que siempre apunta a la celda activa.

Los  objetos  tienen  "propiedades"  y  "métodos".  Una  propiedad  es  un  atributo  del  objeto  que  define  una
característica del mismo. Por ejemplo, la propiedad "Row" del objeto "ActiveCell" nos indica en qué fila de la hoja de
cálculo está la celda activa. Para acceder a una propiedad de un objeto se utiliza el nombre del objeto, un punto y el
nombre  de  la  propiedad  (p.ej.  ActiveCell.Row).  Unas  propiedades  muy  utilizadas  son  las  propiedades  "Value"  y
"Formula"  que  se  aplican  a  todos  los  objetos  Range.  En  nuestro  ejemplo  de  macro,  asignamos  a  la  propiedad
"Formula" del objeto ActiveCell un texto, que es como si el usuario escribiera ese texto en esa celda.

Los "métodos" son acciones que se pueden llevar a cabo sobre un objeto, son rutinas que se aplican sobre el objeto.
Para llamar a un método se utiliza el nombre del objeto, un punto y el nombre del método. Por ejemplo, el método
"ActiveCell.ClearContents"  borra  el  contenido  de  la  celda  activa  (es  decir,  como  si  el  usuario  pulsa  la  tecla
"Suprimir").

Volvamos a nuestra primera macro. La segunda línea asigna un valor a la propiedad "Formula" del objeto ActiveCell.
En realidad no es una formula sino una cadena, pero da lo mismo. Fíjate en que en VBA siempre que escribamos
una cadena de carácteres hay que encerrarla entre comillas dobles ("), igual que en otros lenguajes. Si dentro de
una  cadena  queremos  poner  unas  comillas  dobles,  sólo  tenemos  que  escribirlas  dos  veces  ("en  esta  cadena  hay
unas comillas "" dobles")

La tercera línea llama al método Select del rango "A2" de la hoja activa. Fíjate en la forma de obtener el objeto que
representa a la celda "A2", utilizando Range("A2"). La última línea se encarga de indicar dónde termina la rutina. Por
cada Sub que escribamos obligatoriamente tenemos que escribir un "End Sub".

Ejecutar una subrutina

Para ejecutar una rutina hay varios métodos.

Con la opción "Herramientas, Macro..." Excel te lista todas las macros disponibles y puedes seleccionar la
que quieras y ejecutarla.

Asignar una macro a una nueva opción del menú de Herramientas.

Asignar una "tecla rápida" a la macro, que se ejecutará cada vez que pulsemos esa tecla.

Crear un botón  y  asignar  a  ese  botón  la  rutina,  de  forma  que  ésta  se  ejecutará  cada  vez  que  pulsemos  el
botón. Para crear un botón tenemos que mostrar la barra de herramientas de "Diálogo" (pulsa con el botón
derecho sobre cualquier barra de herramientas, y en el menú que aparece selecciona "Diálogo" y verás que
aparece la nueva barra de herramientas). En esa barra de herramientas hay un botón que sirve para colocar
botones (valga la redundancia) en nuestra hoja. Pulsa ese botón y crea el tuyo en cualquier parte de una hoja
de  cálculo,  con  el  tamaño  que  quieras.  Luego  pulsa  sobre  ese  botón  con  el  botón  derecho  y  del  menú
contextual selecciona la opción "Asignar macro". Verás una lista de macros disponibles, selecciona la que
acabamos de crear (Macro1). Ahora cada vez que pulsemos el botón se ejecutará la macro Macro1.

Mientras estamos editando una hoja de módulos, un método muy práctico de ejecutar las rutinas es situar el
cursor  dentro  de  una  rutina  y  pulsar  el  botón  de  "Ejecutar  macro"  de  la  barra  de  herramientas  de  Visual
Basic. Hay que tener cuidado con este método en Excel 95, porque en algunos casos puede dar errores: por
ejemplo, con este método nuestra primera macro no funciona porque "ActiveCell" no existe, ya que estamos
en una hoja de módulo, por lo que Excel nos dará un mensaje de error. En Excel 97 este problema no ocurre
porque no existen hojas de módulo, sino módulos dentro del Visual Basic Editor.

Podemos utilizar cualquiera de estos métodos (y otros que ya veremos) para ejecutar nuestra rutina, y
comprobaremos que cada vez que la ejecutamos escribe un texto en la celda activa y luego desplaza la selección a
la celda de abajo.

Utilizar funciones de VBA

Además de los objetos con sus métodos y propiedades Excel también tiene funciones. Para llamar a una función
simplemente  hay  que  escribir  su  nombre  y  luego  los  parámetros  necesarios.  Por  ejemplo,  vamos  a  hacer  una
pequeña macro que utilice la función MsgBox. Esta función sirve para presentar cuadros de diálogo con mensajes
para el usuario, aunque no tenemos muchas opciones para diseñar el diálogo, sólo se puede elegir el tipo de icono
entre varios predefinidos (interrogación, exclamación, etc.) y unas cuantas opciones sobre los b
  • Links de descarga
http://lwp-l.com/pdf9422

Comentarios de: Curso de programación en VBA para Excel - Capítulo 1. Introducción y primeros pasos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad