Вы находитесь на странице: 1из 9

PROGRAMACIN VBA PARA EXCEL

1. Lee bien la siguiente informacin, all encontrars varios ejemplos que


debes escribir en editor de Visual Basic de Excel.

VBA es una programacin que est ntimamente relacionada con los libros y las
hojas de clculo y para esto Excel cuenta con un editor de programacin donde se
pone el cdigo, a este se puede acceder, en Excel 2007, yendo a la pestaa
programador y luego a la seccin cdigo donde hacemos clic en Visual Basic o
presionando simultneamente las teclas ALT F11.

En Excel 2003 hay que ir al men desplegable herramientas y de ah la ruta


macros y Editor de Visual Basic

Ambas formas nos lleva, luego de hacer doble clic en Hoja1por ejemplo, al editor
Las macros que se escriban aqu, estarn relacionadas con la Hoja1.
Comencemos por lo ms simple y escribamos una macro que seleccione la celda
B5de la Hoja1 del libro VBAProject (Libro2)

Donde podemos ver que el cdigo

Se escribe entre "Sub" y "End Sub" y que el nombre

No tiene espacios y termina con "( )" . Para ejecutar este cdigo pulsamos en el
icono o en la tecla F5 para que aparezca el panel Macros
Donde puede verse el nombre de la macro que ya est seleccionada, luego
pulsamos en "ejecutar" y despus en el icono , o seleccionando " Alta + F5
que nos lleva a la pantalla con el resultado

Que es la seleccin de la celda B5.


Otro cdigo muy simple es escribir un valor en una celda.
Escribamos el valor 2007 en la celda D8

y si lo queremos borrar

A estas alturas estamos en condiciones de explicar estos sencillos cdigos:


En la programacin VBA se trabaja con OBJETOS ( Hojas, celdas, Rangos, etc)
que como todo objeto, tiene propiedades, por ejemplo el objeto celda pude tener
la propiedad de alto, ancho, estar seleccionada, tener un valor, o no tener ninguno,
etc
En los cdigos que hemos escrito tenemos los objetos Range("B5") ( celda B5)
con la propiedad de estar seleccionada y el objeto Range("D8") ( celda D8) con la
propiedad de tener un nmero (2007) y despus estar vaca.

CONTESTA EN TU CUADERNO:
2. Qu es la programacin orientada a objetos
3. Qu instrucciones hay que escribir para que un programa borre la
informacin que se encuentra en una celda, como por ejemplo la D8.
4. Qu instrucciones hay que escribir para que en una celda aparezca
informacin, como por ejemplo en la celda D8 2007.
5. Lee bien la siguiente informacin y la escribes en tu cuaderno, aparece el
cdigo y para qu se utiliza.
6. De los cdigos del uno al catorce realiza un ejemplo en el editor de Visual
Basic de Excel, quedando as por ejemplo:
Sub primero()
Range("A1").Copy

ActiveSheet.Paste

End Sub

Tambin puede ser as:

Sub primero()
Range("A1").Value=" pedro"
End Sub

CDIGOS MS SIMPLES PARA EMPEZAR

1-Seleccionar una Celda


Range("A1").Select

2-Escribir en la celda que est seleccionada en el momento actual


Activecell.FormulaR1C1="Pedro"

la combinacin los cdigos 1 y 2 es equivalente a esta sola lnea:


Range("A1").Value=" pedro"

3-Letra Negrita
Range(A1).Font.Bold = True

4-Letra Cursiva
Range(A1).Font.Italic = True
5-Letra Subrayada
Range(A1).Font.Underline = xlUnderlineStyleSingle

6-Centrar Texto
With Range(A1)
.HorizontalAlignment = xlCenter
End With

7-Alinear a la izquierda
With Range(A1)
.HorizontalAlignment = xlLeft
End With

8-Alinear a la Derecha
With Range(A1)
.HorizontalAlignment = xlRight
End With

9-Tipo de Letra(Fuente)
With Range(A1)
.Font .Name = "Arial"
End With

10-Tamao de Letra(Tamao de Fuente)


With Range(A1).Font .Size = 12
End With

11-Copiar
Range(A1).Copy

12-Pegar
Range(A1)
ActiveSheet.Paste

13-Cortar
Range("A1").Cut

14-Ordenar Ascendente
Range("A1").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

15-Orden Descendente
Range("A1").Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

16-Buscar
Cells.Find(What:="Csar", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart,
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate

17-Insertar Fila
Range("A1").EntireRow.Insert

18-Eliminar Fila
Range("A1").EntireRow.Delete

19-Insertar Columna
Range("A1").EntireColumn.Insert

20-Eliminar Columna
Range("A1").EntireColumn.Delete

21-Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\Tablas dinamicas.xls"

22-Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\tablas.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

La mayora de estos cdigos se pueden verificar con la grabadora de Macros.

TRABAJO 2
1. LEA LA SIGUIENTE INFORMACIN
2. ESCRIBA LOS EJEMPLOS ENE EL EDITOR DE VISUAL BASIC DE
EXCEL
SIGNIFICADO DE LA FORMULA R1C1
La FORMULA R1C1 se emplea para colocar el resultado de una lnea de cdigo
en la celda que actualmente est activa.
Veamos el siguiente caso

Supongamos que queremos sumar los nmeros de de la columna D y que el


resultado aparezca en la celda F6 que es la que est seleccionada, el cdigo que
se debera escribir es el siguiente
El parntesis destacado en rojo tiene por objetivo cubrir el tango donde estn los
nmeros a sumar, o sea, desplazarme 2 columnas a la izquierda [-2] con 5 y 2 filas
hacia arriba es decir
[-5] y [-2]. Se entiende que R significan filas y C columnas y que anteponemos un -
si nos desplazamos hacia la izquierda o hacia arriba. Cuando escribimos una
funcin, como en el caso anterior, siempre debe ser escrita
ActiveCell.FormulaR1C1 = "=SUM(R[]C[]:R[]C[])", pues el segundo igual es que
caracteriza a la funcin y el parntesis el rango donde se aplica. Lo que se acaba
de hacer es lo mismo que dolocar =SUMA(D1:D3) en la celda F6
Hasta ahora hemos hecho una breve introduccin a la programacin VBA , pero
una cosa fundamental es entender las estructuras de control de flujo de programa,
lo que haremos mediante ejemplos.

Empezaremos por crear una macro para poner a cero el contenido de ciertas
celdas de nuestra hoja de trabajo.
1 Si no tienes abierto Excel2007, brelo para probar el ejercicio.
2 Abre el libro ejemplo_macros de la carpeta Ejercicios del curso.
3 Guarda el libro en la carpeta Mis Documentos con el nombre libro_macros para
no modificar el original.
4 Pulsa las teclas ALT + F11.
5 Accede al men Insertar para insertar un nuevo mdulo.
6 Presiona sobre Mdulo.
7 Vuelve al men Insertar.
8 Selecciona Procedimiento...
Nos aparece el cuadro de dilogo Procedimiento.
9 En el nombre del procedimiento escribe Limpiar.
10 Selecciona Procedimiento y que es de mbito Pblico.
11 Presiona sobre Aceptar.
12 Escribe el cdigo del procedimiento como se ve en la imagen, lo escrito en
verde son comentarios aclaratorios, si quieres puedes no escribirlos.

13 Cierra la ventana del Editor de VisualBasic.


Ahora vamos a comprobar que funciona correctamente la macro creada.
14 Accede a la pestaa Vista.
15 Haz clic en el botn Macros.
16 Selecciona la macro creada Limpiar y pulsa sobre Ejecutar.
17 Observa como las celdas del rango D10:F10 se han puesto a cero y las del
rango D11:F11 se han quedado sin contenido. No cierres el libro.
Para practicar otras instrucciones de VBA, vamos a definir una macro para
sumar tres celdas y dejar el resultado en otra.
18 Pulsa las teclas ALT + F11.
Te aparecer el mdulo con el procedimiento limpiar. Si no es as, busca en la
zona de la izquierda, en el explorador de proyectos, en la carpeta Mdulos, el
mdulo Mdulo1 y haz doble clic sobre l.
19 Accede al men Insertar para insertar un nuevo mdulo.
20 Selecciona Procedimiento...
Nos aparece el cuadro de dilogo Procedimiento.
21 En el nombre del procedimiento escribe Sumar.
22 Selecciona Procedimiento y que es de mbito Pblico.
23 Presiona sobre Aceptar.
24 Escribe el cdigo del procedimiento como se ve en la imagen, lo escrito en
verde son comentarios aclaratorios, si quieres puedes no escribirlos.

25 Cierra la ventana del Editor de VisualBasic.


Ahora vamos a comprobar que funciona correctamente la macro creada.
26 Ve a la pestaa Vista.
27 Haz clic en el botn Macros.
28 Selecciona la macro creada Sumar y pulsa sobre Ejecutar.
Observa como la celda F10 contiene la suma de las celdas B3, B4 y B5.
Por ltimo practicaremos con el bucle For each... next, muy til en este tipo de
programacin.
29 Pulsa las teclas ALT + F11.
Te aparecer el mdulo con el procedimiento limpiar. Si no es as, busca en la
zona de la izquierda, en el explorador de proyectos, en la carpeta Mdulos, el
mdulo Mdulo1 y haz doble clic sobre l.
30 Accede al men Insertar para insertar un nuevo mdulo.
31 Selecciona Procedimiento...
Nos aparece el cuadro de dilogo Procedimiento.
32 En el nombre del procedimiento escribe Aumentar.
33 Selecciona Procedimiento y que es de mbito Pblico.
34 Presiona sobre Aceptar.
35 Escribe el cdigo del procedimiento como se ve en la imagen, lo escrito en
verde son comentarios aclaratorios, si quieres puedes no escribirlos.

Con este procedimiento aumentamos un 50% los valores contenidos en las celdas
seleccionadas.
36 Cierra la ventana del Editor de VisualBasic.
Ahora vamos a comprobar que funciona correctamente la macro creada.
En este caso, como la macro funciona a partir de las celdas seleccionadas,
tenemos que seleccionarlas antes de ejecutar la macro.
37 Selecciona un rango de celdas incluido en B3:B9 (selecciona los precios de los
artculos que van a variar, puedes incluso seleccionar celdas no contiguas con la
tecla Ctrl).
38 Ve a la pestaa Vista.
39 Haz clic en el botn Macros.
40 Selecciona la macro creada Aumentar y pulsa sobre Ejecutar.
Observa como los valores de las celdas seleccionadas han aumentado un 50%.