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

Macros en

Visual Basic
para Excel
JUNIO 2017

Curso desarrollado para introducir a los participantes a la


programacin de macros que permitan agilizar la generacin de
reportes e informes.

NELSON JIMNEZ M. njm@redbusurbano.cl


Tabla de contenido

INTRODUCCIN ____________________________________________________________ 1
Editor de Visual Basic ______________________________________________________________ 1
Objetivos ________________________________________________________________________ 1
GRABAR MACROS (Pulsaciones) _______________________________________________ 2
TIPOS DE REFERENCIAS _____________________________________________________ 3
Referencias Absolutas ______________________________________________________________ 3
Referencias Relativas ______________________________________________________________ 3
Referencias Mixtas ________________________________________________________________ 3
SELECCIONES ______________________________________________________________ 4
Offset ___________________________________________________________________________ 4
End ____________________________________________________________________________ 4
RANGOS ___________________________________________________________________ 5
Rango Completo __________________________________________________________________ 5
Rango Separado __________________________________________________________________ 5
Seleccin Mltiple de Rangos ________________________________________________________ 5
TIPOS DE VARIABLES ________________________________________________________ 6
Byte, Integer, Long_________________________________________________________________ 6
Single, Double ____________________________________________________________________ 7
String ___________________________________________________________________________ 7
Boolean _________________________________________________________________________ 7
ESTRUCTURAS DE CONTROL_________________________________________________ 8
IF (Elseif) ________________________________________________________________________ 8
FOR ____________________________________________________________________________ 9
DO WHILE _______________________________________________________________________ 9
DO UNTIL _______________________________________________________________________ 9
FORMATO DE CELDAS ______________________________________________________ 10
Formatos de Nmero ______________________________________________________________ 10
Alineacin ______________________________________________________________________ 10
Fuentes ________________________________________________________________________ 11
Bordes _________________________________________________________________________ 12
Color __________________________________________________________________________ 12
WITH _____________________________________________________________________ 13
SELECCIONES COMPLETAS _________________________________________________ 14
EntireRow / EntireColumn __________________________________________________________ 14

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


Tabla de contenido

CurrentRegion ___________________________________________________________________ 14

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


1

INTRODUCCIN
Editor de Visual Basic
Para la programacin de Macros en Excel, se utiliza el complemento Editor de Visual
Basic. Este se basa en el lenguaje de programacin Visual Basic 6.0, pero con
pequeas adaptaciones que nos permiten utilizarlo en Microsoft Excel, as como tambin
en Microsoft Word, Microsoft PowerPoint, entre otros.

El Editor de Visual Basic contiene todas las herramientas de programacin necesarias


para escribir cdigo en Visual Basic y crear soluciones personalizadas. Este Editor, es
una ventana independiente de Microsoft Excel, pero tiene el mismo aspecto que cualquier
otra ventana de una aplicacin Microsoft Office, y funciona igual para todas estas
aplicaciones. Cuando se cierre la aplicacin, consecuentemente tambin se cerrar la
ventana del Editor de Visual Basic asociada.

Objetivos
Este curso est principalmente dirigido al Personal del Centro de Operacin que Flota de
Redbus Urbano S.A. Enfocndose en entender el entorno de Visual Basic, y utilizndolo
para optimizar y automatizar los reportes e informes que deben generar dentro de sus
labores diarias.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


2

GRABAR MACROS (Pulsaciones)


Recuerda activar Inicialmente, para poder entrar al entorno de Visual Basic desde Excel, se debe activar la
la pestaa pestaa Desarrollador. Para ello, en el Libro de Microsoft Excel se siguen los
Desarrollador en siguientes pasos: Men Archivo -> Opciones -> Personalizar cinta de opciones y se
el equipo para selecciona la casilla Desarrollador). En algunas versiones tambin aparece como
acceder a las Programador.
opciones y En la pestaa Desarrollador, Se selecciona el
complementos botn Grabar Macro.
para macros.
A este proceso se le llama Generar macro
mediante pulsaciones, permitiendo que el editor
visual Basic lea y refleje en cdigo todos los
Al grabar un libro
movimientos que hagamos en Excel, por
de macros, ejemplo: seleccionar celdas, agregar frmulas,
debes cambiar el agregar o modificar valores, eliminar contenido, etc
tipo a Libro de
Este cdigo se almacenar a eleccin del usuario, pudiendo escoger entre Este Libro,
Excel habilitado Libro Nuevo , o en el Libro de Macros Personal.
para Macros el
El Libro de Macros Personal se abre cada vez
cual tendr la
que se inicia un entorno de Excel, lo que nos
extensin .xlms permite almacenar y tener acceso a macros que
utilicemos regularmente.

Al finalizar el Proceso, se detiene la grabacin


Si necesitas con el botn Detener grabacin
agregar frmulas
a tu macro, es
recomendable
grabarlas, ya
que en Visual
Basic, estn en
Ingls.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


3

TIPOS DE REFERENCIAS
Las celdas Al momento de sealar una celda, existen diferentes modos de considerarlas, como por
tienen varias ejemplo su rango (A1, B5, C10, etc), o por su posicin con respecto a otra celda.
caractersticas,
Para esto utilizaremos los comandos Range, Selection, Activecell y Offset
como valor,
frmula, color, Referencias Absolutas
bordes, etc si
Las referencias absolutas hacen mencin a la celda a trabajar, todos los cambios o
cambias .Value
acciones que se programen afectaran solo a esa ubicacin. Esto nos sirve para
por .Color,
trabajar con datos que no se mueven, por ejemplo: Encabezados de tablas, Ttulos de
puedes cambiar
informes, etc..
su color.
En Visual Basic se ocupa el cdigo Range, por ejemplo:

Range(A1).Value = Hola
Range("Q1").FormulaR1C1 = "Unidad"

Referencias Relativas
Las referencias relativas trabajan con coordenadas centradas en la celda activa, esto
nos sirve para rellenar datos en tablas.

Activecell.Value = Hola
Selection.Value = Hola
Activecell.Offset(0,16).FormulaR1C1 = Unidad
Activecell.Offset(1,0).Select

Referencias Mixtas
Las referencias Mixtas mezclan ambas referencias, Esto nos sirve para trabajar rangos
que van cambiando dinmicamente, o reportes que no siempre tengan la misma
cantidad de informacin.

Range(A1).Offset(0,16).FormulaR1C1 = Unidad
Range(A1).Offset(0,16). FormulaR1C1 = Unidad

El saber distinguir que tipo de referencia utilizaremos depender del xito de las macros
que se desarrollen.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


4

SELECCIONES
Si quieres Existen distintos tipos de selecciones que nos ayudan a trabajar con las diferentes
seleccionar una opciones de referencia:
tabla completa,
prueba usando Offset
.currentregion El comando Offset sirve para desplazarse a travs del libro utilizando referencias
.select despus relativas.
del rango.
Toma un punto de referencia utilizando los cdigos Activecell, Range o Selection, y a
partir de ese punto apunta hacia otra celda dependiendo de la cantidad de filas y
columnas que se le indiquen, ejemplo:

Este cdigo, primero


selecciona la celda B5, y
luego, a la celda que se
encuentra 0 filas y 1
columna de su posicin, le asigna el valor Hola.

Este comando tambin se puede utilizar para cambiar la celda de referencia, ejemplos:

Activecell.Offset(1,0).Select Selecciona la celda inferior.


Selection.Offset(0,1).Select Selecciona la celda de la derecha.
Range(A1).Offset(1,1).Select Selecciona la celda B2.

La mezcla de los tipos de Referencias, y el correcto uso del Offset nos permite trabajar
con Tablas completas, y seleccionar Rangos Amplios.

End
El comando End sirve para trabajar con tablas de datos. Se utiliza de forma similar al
Offset, pero este se mueve hasta el final de la tabla. Un ejemplo de su utilizacin es:

Este comando, selecciona el ultimo


valor de la tabla, tomando como
referencia el Rango B5.

Los valores que toma End son: xlDown, xlUp, xlToLeft, xlToRight.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


5

RANGOS
Puedes formar De la misma forma que se hacen las selecciones, se pueden asignar rangos de trabajo,
un rango por ejemplo:
creando una
cadena de texto. Rango Completo
El Rango completo sirve para seleccionar, por ejemplo, una tabla:

Recuerda que
todo lo que est
entre cremillas
corresponde a
una cadena de
Rango Separado
texto.
El rango separado se utiliza para seleccionar celdas separadas:

Seleccin Mltiple de Rangos


Es una combinacin entre el Rango Completo y el Rango Separado:

En los rangos, y en macros en general, todo lo expresado entre cremillas (), es una
cadena de texto, y puede ser reemplazado por una variable de tipo String.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


6

Es TIPOS DE VARIABLES
recomendable En Visual Basic, podemos declarar diferentes tipos de variables, las cuales nos sirven para
trabajar con valores, construir cadenas de texto, identificar acciones, etc. Para declarar una
utilizar las
variable, utilizamos la sentencia Dim, de la siguiente forma:
variables de tipo
Long y Double,
ya que admiten
mayor cantidad
A continuacin, una tabla con los diferentes tipos de variables que podemos asignar en
de datos, a
Visual Basic.
pesar que de
Tipo Descripcin Rango de Valores
aumentan el
Boolean Binario True o False
tamao de la
Byte Entero Corto (1 byte) 0 a 255
macro.
Integer Entero (2 bytes) -32768 a 32767

Long Entero Largo (4 bytes) -2147483648 a 2147483547

Single Real Simple presicin (4 bytes) -3,40E38 a 3,40E38

Double Real Doble presicin (8 bytes) -1,79E308 a 1,70E308

Currency Nmero con punto decimal fijo (8 bytes) -9,22E14 a 9,22E14


Cadena de caracteres (4 bytes + 1 byte/car hasta 1 de enero de 100 a 31 de diciembre de 9999. Indica
String
64K) tambin la hora desde 00:00:00 a 23:59:59.
Date Fecha (8 bytes) F/h: como Date
Fecha/hora: Numeros enteros, reales o
Variant
caracteres (16 bytes + 1 byte/car en cadena)
Cualquier tipo de dato o estructura de datos. Se
User-defined
crean utilizando la sentencia Type

Byte, Integer, Long


Son variables de tipo entero. Pueden utilizarse como contadores de acciones o para
sumar cifras enteras (cantidad de despachos, numero de buses, etc).

Esta macro parte con la variable numero


con valor inicial 0, luego, lo aumenta en 1,
repitiendo 2 veces mas este paso. Al
finalizar, asigna al rango A1, el valor
resultante de la variable (3).

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


7

Single, Double
Utiliza las
Corresponden a variables de tipo Real (nmeros con decimales). Estas se ocupan
variables para operaciones matemticas, y funcionan de la misma forma que las variables Byte,
Boolean junto Integer o Long.
con la estructura
de control IF. String
Corresponden a cadenas de texto, se utilizan para asignar nombres, direcciones, etc
En sntesis, todo dato que contenga texto.

Al igual que en Excel podemos concatenar, en Visual Basic podemos construir


cadenas de Texto, e incluso ocuparlas para crear rangos (entre otras funciones).

Boolean
Se utilizan como variables de decisin, ya que nicamente toman los valores True o
False.

Esta variable la utilizaremos generalmente en las sentencias IF, aunque pueden ser
perfectamente usadas en otro tipo de iteraciones.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


8

En la estructura ESTRUCTURAS DE CONTROL


IF, puedes Las estructuras de control nos permiten controlar el flujo que seguir el programa, por
ejemplo:
ocupar tantos
ElseIf como Toma de decisiones.
necesites. Realizar iteraciones o repeticiones
Control de errores, etc

Para esto ocuparemos cuatro sentencias: IF, FOR, DO WHILE, DO UNTIL. Las cuales
funcionan de la siguiente manera:

IF (Elseif)
Es la estructura de control bsica para la toma de decisiones, esta determina el curso
del programa segn la informacin de entrada.

Su lgica es la siguiente:

IF (condicin) Then
Acciones a tomar en caso de cumplirse la condicin
Else
Acciones a tomar en caso de NO cumplirse la condicin
End If

Ejemplo:

En este ejemplo, el programa


evala la celda activa, y si el valor
de esta es I, la reemplazar por
un Ida, de lo contrario, la
reemplazar con Regreso.

A la estructura, adems, se le
puede agregar un ElseIF, para
poder decidir entre mas de dos
opciones, ejemplo:

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


9

FOR
Si quieres
El ciclo FOR es una estructura de iteracin (Repeticin), que funciona de la siguiente
recorrer una forma:
tabla, y no
For (condicin de inicio) To (condicin de fin)
conoces su
Sentencias a ejecutar
dimensin, es
Next (variable)
recomendable
Ejemplo:
usar Do While o
Do Until. Este cdigo parte asignando
una variable (i) de tipo Integer,
luego, con i partiendo en 1,
hasta 10 (osea ejecuta 10
veces el cdigo), le asigna el
valor B01 a la celda activa, y
luego se desplaza una celda hacia abajo.

DO WHILE
El ciclo DO WHILE se mantiene iterando mientras se cumpla una condicin. Tiene la
siguiente estructura:

Do While (condicin)
Sentencias a ejecutar
Loop

Ejemplo:

El cdigo se ejecuta
mientras la celda activa
sea distinta de vaco,
asignndole el valor
U6 a la celda de la
derecha.

DO UNTIL
El ciclo DO UNTIL sigue exactamente la misma estructura del ciclo DO WHILE. En Do
While, el ciclo se ejecuta mientras se cumpla una condicin. En Do Until, el ciclo se
ejecuta hasta que se cumpla una condicin.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


10

La estructura de FORMATO DE CELDAS


control IF puede Para modificar los formatos de las celdas, se deben aplicar los siguientes comandos:

diferenciar tanto
Formatos de Nmero
valores como
Para modificar el formato de nmero se utiliza el comando NumberFormat, por
formatos,
ejemplo:
ocpalo cuando
Range(A1).NumberFormat = 0 Asigna Formato de Nmero
necesites
trabajar una Range(A1).NumberFormat = @ Asigna Formato de Texto

tabla segn sus


Alineacin
formatos.
Para modificar la alineacin de las celdas, se deben aplicar los siguientes comandos:

HorizontalAlignment WrapText
Si olvidas algn AddIndent ShrinkToFit
IndentLevel MergeCells
comando,
VerticalAlignment ReadingOrder
puedes grabar
Orientation
una macro para
recordarlos.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


11

Fuentes
Si olvidas algn
Las fuentes se modifican indicando el rango, seguido por .Font adems de la
comando, caracterstica de la fuente que cambiaremos, ejemplo:
puedes grabar
Range(A1).Font.Size = 10 Cambia el tamao de letra a 10
una macro para
recordarlos. El listado de fuentes a modificar es:

Name OutlineFont
FontStyle Shadow
Size Underline
Strikethrough ThemeColor
Superscript TintAndShade
Subscript ThemeFont

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


12

Bordes
Recuerda que
As como las fuentes y las alineaciones, los bordes tambin se pueden modificar de la
los bordes, siguiente manera:
adems del valor
Rango.Borde a Modificar.Estilo de lnea = Valor.
y la fuente, son
una Ejemplo:

caracterstica Range(A1). Selection.Borders(xlDown).LineStyle = xlNone


que se puede
Los bordes a modificar se indican de la siguiente forma:
modificar del
objeto Celda. .Borders(xlDiagonalDown) .Borders(xlEdgeBottom)
.Borders(xlDiagonalUp) .Borders(xlEdgeRight)
.Borders(xlEdgeLeft) .Borders(xlInsideVertical)
.Borders(xlEdgeTop) .Borders(xlInsideHorizontal)

Estos bordes deben estar acompaados de la caracterstica del objeto a modificar, por
ejemplo Linestyle, el cual puede tomar los siguientes valores:

xlContinuous
xlDash
xlDashDot
xlDashDotDot
xlDot
xlDouble
xlSlantDashDot

Adems del tipo de lnea, se puede modificar el color (.Color, .Themecolor), el grosor
(.Weight), etc..

Color
El color, se puede modificar con la sentencia .Interior.Color , el cual puede tomar
valores numricos o RGB.

Para utilizar el RGB se presenta de la siguiente forma:

Range(A1).Interior.Color = RGB(255,255,255).

Los valores corresponden a Rojo, Verde y Azul Respectivamente, y pueden tomar


valores desde 0 a 255.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


13

El comando With WITH


es til al La sentencia With nos permite agrupar y modificar las caractersticas de una celda o
rango, por ejemplo:
momento de
aplicar un Inicialmente:
ordenamiento en
Sub Sin_With()
tablas.
Range(A1).Value = Hola

Range(A1).Font.Bold = True

Range(A1). Borders(xlEdgeTop).Linestyle = xlContinuous

End Sub

Aplicando With:

Sub Con_With()

With Range(A1)

.Value = Hola

.Font.Bold = True

. Borders(xlEdgeTop).Linestyle = xlContinuous

End With

End Sub

Este comando sirve para ahorrar tiempo al desarrollar el cdigo cuando se tienen muchos
valores que asignar a una celda, especialmente al asignar cada borde.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017


14

Si ests SELECCIONES COMPLETAS


trabajando con Cuando necesitamos seleccionar rangos completos, podemos utilizar el comando End.
Pero si tenemos una tabla que no contiene todos los datos, o necesitamos seleccionar una
referencias
fila o columna completa, pero no conocemos su ubicacin, podemos utilizar los siguientes
relativas,
comandos:
EntireRow y
EntireColumn te EntireRow / EntireColumn
sern de utilidad. Sirve para seleccionar filas / columnas completas, indicando un rango, por ejemplo:

Activecell.EntireRow.Delete Borra la fila entera de la celda activa.

Selection.EntireColumn.Insert Inserta columnas dependiendo del rango de


seleccin.

CurrentRegion
El comando CurrentRegion sirve para seleccionar/trabajar la tabla completa, por
ejemplo:

Range(A1).CurrentRegion.Select

Estos tipos de selecciones nos permiten operar fcilmente con tablas, sobre todo al
momento de aplicar filtros, aplicar ordenamiento, formatos, reas de impresin, etc.

MACROS EN VISUAL BASIC PARA EXCEL JUNIO 2017

Вам также может понравиться