Manual de Macros Con Visual Basic
Manual de Macros Con Visual Basic
Manual de Macros Con Visual Basic
Macros de Excel
Es un lenguaje (Codificacin), que se puede utilizar, como lenguaje comn entre los diferentes
programas que se tiene en el Microsoft Office, cabe mencionar que esta basado en un
Lenguaje llamado Visual Basic, pero no tiene mucho que ver con l.
La macros de Visual Basic estn basadas en mdulos, que por tal hecho se vuelven ms
complicadas, teniendo como ventaja que son compatibles dentro de varias aplicaciones, de
esta manera se tendra un lenguaje comn de macros entre varios programas, con lo cual se
logra que se pierda menos tiempo en realizar una macro en alguno de estos programas. Por
esta razn es que las macros de Visual Basic es visto en un curso en particular.
Ejercicios
1. Macro "archivo" que se active con Control + a y que permita abrir un archivo
2. Macro "seleccion" que seleccione las celdas A1:B10 de la primer hoja del libro abierto
3. Macro "letra" que ponga letra tipo arial
4. Macro "color" que ponga letra de color Azul
5. Macro "tamao" que ponga letra de tamao 14
6. Macro "Todo" que una las macros anteriores
TALLER
1. Una Macro "operacion" que copie los valores que tengan las celdas A1:A10 en las
celdas B1:B10 y en C1:C10 y sume los valores de cada fila (A1,B1,C1) en D1 hasta
D10 respectivamente.
2. Una Macro "suma" que sume las celdas A1:A10 en A11, B1:B10 en B11, C1:C10 en
C11 y D1:D10 en D11
3. Una Macro "formato" que ponga todos los numeros con dos decimales, de color azul y
con tamao de letra 14
4. Una Macro "Texto" que inserte una fila al inico de la tabla y ponga como rotulos en
cada celda asi:
en A1=Valor 1
en B1=Valor 2
en C1=Valor 3
en D1=Total
5. Una Macro "Todo" que una todas las macros anteriores
Asegrese de que est visible la barra de herramientas, para mostrar una barra de
herramientas, utilice el cuadro de dilogo Personalizar elija Barras de herramientas en el men
Ver y haga clic en Personalizar.
Para ver ms botones, haga clic en Modificar seleccin y en Cambiar imagen del botn en el
men de Personalizar.
Al incluir el botn en cualquier barra de herramientas, se genera el boton de Modificar
Seleccin al desplegarlo exixte la opcion asignar macro en una caja de dilogo como la que se
muestra a continuacin:
Aqu aparecen listadas las macros que contiene ese libro o el libro personal de macros para
que se asigne al botn. Adems, permite Grabar una nueva macro y Editar una ya existente.
Cuadro de edicin No est disponible en los libros de Microsoft Excel. Este control se
proporciona para que pueda trabajar con las hojas de dilogo de Excel versin 5.0.
Cuadro de grupo Agrupa los controles relacionados, como los botones de opcin o las
casillas de verificacin.
Casilla de verificacin Activa o desactiva una opcin. Puede activarse ms de una casilla
de verificacin a la vez en una hoja o en un grupo.
Crear cuadro combinado de lista No est disponible en los libros de Excel. Este control
se proporciona para que pueda trabajar con las hojas de dilogo de Excel versin 5.0.
Crear cuadro combinado desplegable No est disponible en los libros de Excel. Este
control se proporciona para que pueda trabajar con las hojas de dilogo de Excel versin 5.0.
Si desea que el control ejecute una macro existente, abra el libro que contiene la macro.
Si agrega un botn, seleccione la macro que debe ejecutar el botn en el cuadro Nombre de la
macro.
Si agrega un control que no sea un botn, haga clic con el botn secundario en el control y, a
continuacin, elija Asignar macro en el men contextual. Seleccione la macro que desee.
Si la macro no existe, haga clic en Grabar en el cuadro de dilogo Asignar macro para grabar
una nueva macro o haga clic en Nueva para abrir un mdulo Visual Basic para Aplicaciones
(VBA) de Microsoft en el que puede escribir la macro.
Haga clic con el botn secundario en el control, elija Modificar texto y agregue el texto para el
control. Cuando haya terminado, haga clic con el botn secundario en el control y, a
continuacin, haga clic en Salir de Modificar texto.
Establezca las propiedades del control.
Para observar los cdigos de una macro debemos de seguir los siguientes pasos y crear una:
Excel a grabado los pasos y a generado un cdigo, para visualizarlo realice las siguientes
operaciones:
G. Presione la tecla Alt + la tecla de funcin F11(Alt + F11). Excel nos lleva al Editor de Visual
Basic o tambin puede entrar al Editor de Visual Basic desde el Men Herramientas, Macro y
Editor de Visual Basic.
H. Active los siguientes cuadros o ventanas normalmente estan activos:
Puede ejecutar la macro desde el editor de Visual Basic con el boton de ejecucin de macros
en la barra de herramientas
Automticamente se plasman los resultados en la hoja de Excel, tambin puede ejecutarla con
control + k o en el men de Macros, Ejecutar y el men de Herramientas.
Cdigo Accin
Trasladarse a una
Range("A1").Select
Celda
Escribir en una
Activecell.FormulaR1C1="MACROS"
Celda
Letra Negrita o
Selection.Font.Bold = True
Negrilla
Selection.Font.Italic = True Letra Cursiva
Selection.Font.Underline = xlUnderlineStyleSingle Letra Subrayada
With Selection.Font
Tipo de
.Name = "Arial"
Letra(Fuente)
End With
With Selection.Font Tamao de
.Size = 15 Letra(Tamao de
End With Fuente)
Selection.Copy Copiar
Selection.Cut Cortar
ActiveSheet.Paste Pegar
Sale una ventana
MsgBox "Curso de Macros" con un mensaje en
pantalla
With Selection
.HorizontalAlignment = xlCenter Centrar Texto
End With
With Selection
Alinear a la
.HorizontalAlignment = xlLeft
izquierda
End With
With Selection
Alinear a la
.HorizontalAlignment = xlRight
Derecha
End With
Selection.EntireRow.Insert Insertar Fila
Selection.EntireRow.Delete Eliminar Fila
Selection.EntireColumn.Insert Insertar Columna
Selection.EntireColumn.Delete Eliminar Columna
Workbooks.Open Filename:="C:\Temp\prueba.xls" Abrir un Libro
ActiveWorkbook.SaveAs
Filename:="C:\Temp\prueba.xls", FileFormat _
Grabar un Libro
:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:= _False, CreateBackup:=False
Ejercicios
1. Cree una macro que permita encontar los datos de una factura deterninada utilizando
el archivo ventas.xls de su escritorio, y cree un botn llamado buscar para poder
encontar losdatos de otras facturas.
2. Cree una hoja en la que existen diferentes botones de opcin y cada uno de ellos tiene
diferentes valores de descuentos para una lista de productos, y que de acuerdo a la
seleccin del botn de opcin se muestre el descuento en la hoja de calculo y las
respectivas operaciones en ella, como muestra el ejemplo:
1. Cree una barra de herramientas propia con 5 macros que ejecuten las siguientes
tareas:
o Un botn que permita poner en Negrita la seleccin actual de celdas
o Un botn que centre el contenido de las celdas seleccionadas
o Un botn que elimine la columna selecionada y emita un mensaje informando
de la accin
o Un botn que copie el contenido de las celdas o celda seleccionada
o Un botn que pegue el contenido de las celdas o celda copiadas
OBJETIVOS
Crear Formularios
Insertar Controles
Editar algunas Propiedades
Programacin de Formularios
Crear Formulas en los Formularios
Ejercicios
Crear Formularios
Un formulario es una ventana independiente que se crea con controles y esos controles
responden a comandos que se programan con Visual Basic.
Para crear un formulario en Excel Abra un libro de trabajo en blanco, luego presione La Teclas
Alt + F11, para entrar al editor de Visual Basic o de clic en Herramientas, Macro y Editor de
Visual Basic.
Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que se programara con
controles.
Puede ver la cuadrcula del formulario UserForm y determinar el tamao de las lneas de
cuadrcula en la ficha General del cuadro de dilogo Opciones.
Puede utilizar los botones del cuadro de herramientas para dibujar controles en el formulario
UserForm. Puede establecer controles para alinearlos con la cuadrcula del formulario
UserForm en la ficha General del cuadro de dilogo Opciones.
Tambin cuando de clic en el Formulario UserForm1 se debe de activar el Cuadro de
Herramientas, si no se activa de clic en el Men Ver y elija la opcin Cuadro de Herramientas.
El Cuadro de Herramientas muestra los controles estndar de Visual Basic junto con los
controles ActiveX y los objetos que se pueden insertar que se han agregado al proyecto.
Insertar Controles
Para agregar controles a un formulario UserForm, busque el control que desea agregar en la
Caja de herramientas, arrstrelo al formulario y, a continuacin, arrastre el controlador de ajuste
del control hasta que el contorno tenga el tamao y forma deseados.
Una vez agregados los controles al formulario, utilice los comandos del men Formato, en el
Editor de Visual Basic, para ajustar la alineacin y espaciado del control.
Seleccionar objetos
Seleccionar objetos es el nico elemento del cuadro de elementos que no dibuja un control.
Cuando se selecciona, slo puede cambiar el tamao o mover un control que ya se haya
dibujado en un formulario.
Etiqueta
Permite tener texto que no desee que cambie el usuario, como el ttulo debajo de un grfico.
Cuadro de texto
Cuadro combinado
Permite dibujar un cuadro de lista combinado y un cuadro de texto. El usuario puede elegir un
elemento de la lista o introducir un valor en el cuadro de texto.
Cuadro de lista
Se utiliza para mostrar una lista de elementos entre los que puede elegir el usuario. Puede
desplazarse por la lista si sta contiene ms elementos de los que se pueden ver en un
determinado momento.
Casilla de verificacin
Crea una casilla que el usuario puede elegir fcilmente para indicar si algo es verdadero o falso
o para mostrar varias elecciones cuando el usuario puede elegir ms de una.
Botn de opcin
Permite mostrar varias elecciones entre las que el usuario slo puede elegir una.
Botn de alternar
Permite crear una agrupacin grfica o funcional de controles. Para agrupar los controles,
dibuje primero el marco y despus los controles dentro del marco.
Botn de comando
Crea un botn que el usuario puede elegir para realizar la accin de un comando.
Barra de tabulaciones
Permite definir mltiples pginas para la misma rea de una ventana o cuadro de dilogo de la
aplicacin.
Pgina mltiple
Barra de desplazamiento
Proporciona una herramienta grfica para desplazarse rpidamente por una larga lista de
elementos o una gran cantidad de informacin, para indicar la posicin actual en una escala o
como un dispositivo de entrada o indicador de velocidad o cantidad.
Botn de nmero
Un control de giro que se puede utilizar con otro control para aumentar o reducir los nmeros.
Tambin lo puede utilizar para desplazarse hacia delante o detrs de un intervalo de valores o
una lista de elementos.
Imagen
Muestra una imagen grfica de un mapa de bits, icono o metaarchivo en el formulario. Las
imgenes mostradas en un control Imagen slo pueden ser decorativas.
Las propiedades se pueden editan desde el cuadro de propiedades o desde el Editor de Visual
Basic mientras escribe la programacin de los controles.
Desde el cuadro de propiedades existen dos formas de buscar las propiedades de un objeto,
de forma Alfabtica y por Categoras.
Algunas de las propiedades ms importantes son:
Propiedad Caption
Comentarios
El texto identifica o describe el objeto con el que est asociado. Para los botones y etiquetas, la
propiedad Caption especifica el texto que aparece en el control. Para los objetos Page y Tab,
especifica el texto que aparece en la ficha.
Propiedad ForeColor
Comentarios
Utilice la propiedad ForeColor para controles de formularios con el fin de hacerlos ms fciles
de leer o para transmitir un significado especial. Por ejemplo, si un cuadro de texto informa del
nmero de unidades en almacn, puede cambiar el color del texto cuando el valor caiga por
debajo del nivel de nuevo pedido.
Propiedad BackColor
Comentarios
Propiedad BackStyle
Comentarios
Propiedad BorderStyle
Comentarios
Puede utilizar tanto el control BorderStyle como el control SpecialEffect para especificar el
borde para un control, pero no ambos, fmBorderStyleNone 0 El control no tiene una lnea de
borde visible, fmBorderStyleSingle 1 El control tiene un borde de una sola lnea y es el
predeterminado.
Propiedad BorderColor
Comentarios
La propiedad BorderStyle utiliza BorderColor para definir los colores de los bordes.
Propiedad Visible
Comentarios
Utilice la propiedad Visible para controlar el acceso a informacin sin mostrarla. Por ejemplo,
podra utilizar el valor de un control en un formulario oculto como criterio para una
consulta.True El objeto es visible, predeterminado. False El objeto est oculto.
Propiedad Enabled
Comentarios
Propiedad Name
Especifica el nombre de un control u objeto, o el nombre de una fuente asociada al objeto Font.
Valor Descripcin
True El texto tiene el atributo especificado es decir, negrita, cursiva, tamao, marcas de
tachado o subrayado, o grosor.
False El texto no tiene el atributo especificado, predeterminado.
Programacin de Formularios
Creamos una hoja de calculo y en ella una tabla con los siguientes rotulos:
Creamos un Formulario presionando La Teclas Alt + F11, para entrar al editor de Visual Basic o
de clic en Herramientas, Macro y Editor de Visual Basic.
Del Men Insertar elija la Opcin UserForm. Esto inserta el Formulario que se programara con
controles.
Para visualizar algunas acciones de un formuladio vamos a crear los siguientes elementos:
Y modificamos las propiedades de cada elemento dejando los controles de la siguiente forma:
Damos doble Clic al botn de Insertar y escribimos el siguiente codigo:
Luego damos doble clic en UserForm1 de la ventana de Proyecto y nos lleva al Formulario
nuevamente.
Damos doble Clic al botn de Cerrar y escribimos el siguiente cdigo:
Al darle clic en Insertar los datos del control se llevaran a la hoja de calculo en las celdas
programadas.
Podemos agregar una macro para ejecutar el formulario desde un botn con el siguiente
cdigo:
Ahora podremos ejecutar el formulario desde la hoja donde esta la tabla de datos.
ELABORANDO UNA CONSULTA
Fase I
el formulario tendr:
Tres etiquetas
Tres Textbox
Tres Botones de Comando
Los datos que se preguntaran sern Nombre, Direccin y Telfono. Los tres botones
nos servirn para lo siguiente: Consultar consultara la informacin que hayamos
insertado desde el botn insertar. Baja podr eliminar algn dato que se consulto y no lo
queremos. Insertar tendr la funcin de insertar los registros que vayamos dando de
alta, es como los ejercicios anteriores. A continuacin se muestra como se deben de
programar estos Controles:
BOTON DE CONSULTA
ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell
Rem Cada vez que se escriba la lnea ActiveCell.Offset(0, 1).Select significa que se
tiene que moverse una columna a la derecha.
End Sub
BOTON BAJA
Private Sub CommandButton2_Click()
Selection.EntireRow.Delete
Range("A9").Select
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub
BOTON INSERTAR
CUADROS DE TEXTO
Private Sub TextBox1_Change()
Range("A9").FormulaR1C1 = TextBox1
Rem esta primer lnea reemplaza a estas dos que te parece todava mas corta
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
BOTON DE CONSULTA
Rem esta lnea genera una trampa de error si Excel encuentra un error se le dice que se
vaya a la etiqueta noencontro que esta definida mas adelante en el cdigo. No use la
trampa de error si no tiene problemas a la hora de que no encuentra a la persona.
Recuerde si usted comete cualquier error Excel se dirigir a la etiqueta noencontro.y
esquivara cualquier error, hasta uno que usted cometa en la programacin.
ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell
Rem Tambin se puede utilizar este cdigo para leer la informacin de las celdas lo que
esta en azul. La diferencia es que se asignan los valores a variables y despus se
descargan a los TextBoxs.
ActiveCell.Offset(0, 1).Select
Direccion = Activecell
ActiveCell.Offset(0, 1).Select
Telefono = Activecell
TextBox2 = Direccion
TextBox3 = Telefono
noencontro:
Rem Aqu se esquiva el error
End Sub
Que te parece es increble como una Macro combinada con Visual Basic puede hacer
hasta lo imposible
Para realizar este ejercicio debemos permanecer dentro del Editor de Visual Basic para
poder introducir el cdigo en un Modulo, por lo tanto debers seguir los siguientes
pasos:
Sub Entrada()
Load UserForm1
UserForm1.Show
End Sub
Usted deber escribir las dos lneas que estn en medio que son:
Load UserForm1
UserForm1.Show
Ya que estamos en Excel, podemos insertar una imagen o un botn o cualquier grafico,
por ejemplo: