Download - Tutorial Excel VBAplication
-
7/21/2019 Tutorial Excel VBAplication
1/183
MMSSEExxcceell 22001100ccoonn
PPrrooggrraammaacciinn ddee
MMaaccrrooss eennVVBBAA
Introduce al participante en los conocimientos
para utilizar la herramienta de Excel 2010 en
aplicaciones que permitan optimizar su tiempo
mediante la programacin con el lenguaje Visual
Basic.
Ing. Patricia Acosta, MSc.
Ing. Luis Salvador, MSc.
E-mail:[email protected]
Website: http:// saccec.com/
Blog:http://www.aulaexcelavanzado.blogspot.com/
Agosto/2011
mailto:[email protected]:[email protected]:[email protected]://www.aulaexcelavanzado.blogspot.com/http://www.aulaexcelavanzado.blogspot.com/http://www.aulaexcelavanzado.blogspot.com/mailto:[email protected] -
7/21/2019 Tutorial Excel VBAplication
2/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
2
CONTENIDO
MACROS EN MS EXCEL................................................................................................................ 4
PREPARAR EL LIBRO DE EXCEL PARA TRABAJAR CON MACROS............................... 4GRABAR MACROS.......................................................................................................................... 9
EJECUTAR MACROS ................................................................................................................... 14
ACCESAR AL AMBIENTE DE VISUAL BASIC ....................................................................... 16
MODIFICAR MACROS ................................................................................................................. 20
CDIGOS MS COMUNES EN MACROS ................................................................................ 24
ASIGNAR UNA MACRO A UN BOTN DE FORMULARIO ................................................. 27
ASIGNAR A UNA FORMA............................................................................................................ 32
PREPARAR EL LIBRO PARA TRABAJAR CON CONTROLES ACTIVEX ....................... 36
TRABAJAR CON CONTROLES ACTIVEX .............................................................................. 41
CAMBIAR DE APARIENCIA AL BOTN DE COMANDO .................................................... 46
INSERTAR UN ICONO EN EL BOTN DE COMANDO ........................................................ 50
INSERTAR CDIGO EN EL BOTN DE COMANDO ............................................................ 53
CREAR FORMULARIOS .............................................................................................................. 59
CARGAR UN FORMULARIO EN EXCEL ................................................................................. 68
PROGRAMAR UN FORMULARIO ............................................................................................. 71TRABAJAR CON FRMULAS .................................................................................................... 76
PROTEGER UN PROYECTO DE VBA CON CLAVE .............................................................. 79
OBJETOS, PROPIEDADES Y MTODOS. ................................................................................ 82
CONCEPTOS QUE ENCONTRAREMOS EN EXCEL ............................................................. 83
PRACTICA II .................................................................................................................................. 93
CDIGOS MS COMUNES ......................................................................................................... 94
ESTRUCTURAS CONDICIONALES. ........................................................................................ 107
ESTRUCTURA IF..ELSE ............................................................................................................. 110
ESTRUCTURAS IF ANIDADAS ................................................................................................. 113
OPERADORES LGICOS. ......................................................................................................... 114
OPERADOR LGICO AND (Y). ....................................................................................................... 114OPERADOR LGICO OR (O). .......................................................................................................... 116OPERADORLGICONOT(NO). ............................................................................................. 117
ESTRUCTURA SELECT CASE .................................................................................................. 119
LA FUNCIN MSGBOX .............................................................................................................. 123
TABLA PARA BOTONES E ICONOS DEL CUADRO MSGBOX ........................................ 123
-
7/21/2019 Tutorial Excel VBAplication
3/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
3
LA INSTRUCCIN WITH .......................................................................................................... 126
ESTRUCTURAS REPETITIVAS ................................................................................................ 128
ESTRUCTURA REPETITIVA PARA (FOR) ............................................................................ 130
PROPIEDADES ROW Y COLUMN ........................................................................................... 133
ESTRUCTURA REPETITIVA DO WHILE..LOOP (HACER MIENTRAS) ........................ 134
ESTRUCTURADO..LOOPUNTIL(HACER..HASTAQUESECUMPLALACONDICIN)....................................................................................................................................................... 141
PROCEDIMIENTOS Y FUNCIONES. ....................................................................................... 144
DEFINIRUNPROCEDIMIENTO .............................................................................................. 144LLAMARAUNPROCEDIMIENTO. ........................................................................................ 144
GENERALIZAR UNA FUNCIN............................................................................................... 147
PARMETROS. ............................................................................................................................... 147VARIABLES LOCALES Y VARIABLES GLOBALES ........................................................... 150
PASOPORREFERENCIAYPASOPORVALOR.................................................................... 153
FUNCIONES .................................................................................................................................. 156
APLICACIN DE EJEMPLO. ............................................................................................................. 157CUADRODETEXTOYBOTN............................................................................................... 158INSERTARELCUADRODETEXTO. ...................................................................................... 158INSERTARUNAETIQUETA. ................................................................................................... 159INSERTARUNBOTN. ............................................................................................................ 159
CAMBIARLASPROPIEDADESDELOSOBJETOS. ............................................................. 159CAMBIAR EL TEXTO DEL CONTROL LABEL.PROPIEDAD CAPTION. ................................................ 159CAMBIAR EL NOMBRE DEL CONTROL CUADRO DE TEXTO.PROPIEDADNAME............................... 160ESTABLECER LA ACCIN DE COPIAR DATOS CUANDO SE PULSE EL BOTN. .................................... 160
LOS EVENTOS.............................................................................................................................. 160
ESCRIBIR CDIGO PARA EL EVENTO CLIC DEL BOTN. .................................................................. 161PROPIEDADLISTFILLRANGE. ............................................................................................... 165PROPIEDADLINKEDCELL...................................................................................................... 165PROPIEDAD LISTINDEX. ................................................................................................................ 166LISTAS CON MS DE UNA COLUMNA. ............................................................................................. 172
ESTABLECER LOS VALORES DEL CONTROL DE NMERO. ................................................................ 176CELDASDEVERIFICACIN(CHECKBOX) ......................................................................... 179BOTONESDEOPCIN(OPTIONBUTTON) .......................................................................... 181
REFERENCIAS ELECTRNICAS ............................................................................................ 183
-
7/21/2019 Tutorial Excel VBAplication
4/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
4
MACROS EN MS EXCEL
Introduccin
Microsoft Office Excel 2010, permite
trabajar con las macros. Lo que se
pretende es automatizar varias tareas y
fusionarlas en una sola, aadiendo por
ejemplo un botn en nuestro libro que
al pulsar sobre l realice todas esas
tareas.
Es posible que en tu rea de trabajo, se realicen tareas repetitivas, clculos
complicados con las hojas Excel, desperdiciando mucho tiempo en realizar los
clculos, resmenes de datos e informes de manera manual. Al aplicar las
macros, podrs darte cuenta que con un simple clic a un botn en cuestin de
segundos todas esas tareas estaran realizadas.
En esta unidad de estudio con las macros aprenders a automatizar y realizar
tareas complejas, aumentando la eficiencia y eficacia del trabajo.
PREPARAR EL LIBRO DE EXCEL PARA TRABAJAR CON MACROS
Una macroes una serie de instrucciones que se almacenan para que se
puedan ejecutar de forma secuencial mediante una sola llamada u orden de
ejecucin.
Con las macros lo que se pretende es automatizar varias tareas y fusionarlas
en una sola, aadiendo por ejemplo un botn en nuestro libro que al pulsar
sobre l realice todas esas tareas.
Trminos que se utilizan cuando se crean Macros:
-
7/21/2019 Tutorial Excel VBAplication
5/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
5
VBA: Visual Basic para Aplicaciones, el lenguaje de cdigo de macros.
Mdulo: Contenedor para almacenar macros, asociado a un libro.
Prctica
Crear una macro que permita dar a cualquier celda el formato de letra Comic
Sans MS, de tamao 18, color azul y negrita.
Lo primero que debes hacer en Excel 2010, para empezar a grabar una macro
es:
Habilitar la pestaa Programador.
Para esto realiza lo siguiente:
Haz clic en Archivo.
Selecciona Opciones.
Haz clic en la opcin Personalizar cinta de opciones.
Activar con un visto la opcin Programador.
Haz clic en Aceptar.
-
7/21/2019 Tutorial Excel VBAplication
6/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
6
Se visualiza:
Luego guarda tu libro de Excel como libro de Excel habilitado para macros,
cuya extensin es .xlsm.Para esto realiza lo siguiente:
Selecciona Archivo.
Haz clic en Guardar como.
Se visualiza:
-
7/21/2019 Tutorial Excel VBAplication
7/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
7
Digita un nombre por ejemplo, miprimeramacro.
Verifica que sea del tipo Libro de Excel habilitado para macros.
Haz clic en Guardar.
Para habilitar las seguridades de las macros realiza lo siguiente:
-
7/21/2019 Tutorial Excel VBAplication
8/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
8
Selecciona la pestaa Programador.
Haz clic en Seguridad de macros.
Se visualiza:
Haz clic en Configuracin de macros
Selecciona Habilitar todas las macros (no recomendado; puede ejecutar cdigo
posiblemente peligroso)
-
7/21/2019 Tutorial Excel VBAplication
9/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
9
Haz clic en Aceptar
GRABAR MACROS
La forma ms fcil e intuitiva de crear macros es crearlas mediante el grabador
de macros del que dispone Excel.
Este grabador de macros te permite grabar las acciones deseadas que
posteriormente las traduce a instrucciones en VBA, las cuales podemos
modificar posteriormente si tenemos conocimientos de programacin.
Cuando grabe una macro, la grabadora de macros graba todos los pasos
necesarios para completar las acciones que deseas grabar.
Prctica
Para crear la macro que permita dar a cualquier celda el formato de letra
Comic Sans MS, de tamao 18, color azul y negrita.
Realizaremos la siguiente secuencia:
Selecciona la celda C4.
Digita Hola amiguit@s!!
Antes de iniciar la grabacin selecciona la celda C4, pues as podrs ir
visualizando que se aplica el formato solicitado.
Selecciona la ficha Programador.
Haz clic en Grabar macro.
-
7/21/2019 Tutorial Excel VBAplication
10/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
10
Otra opcin para grabar la macro es hacer clic en el icono
Con cualquiera de las opciones se visualiza el cuadro de dilogo Grabar
macro.
En Nombre de la macro, digita un nombre para la macro.
Sugerencias para el nombre de la macro:
No iniciar con nmeros, no contener espacios en blanco, ni caracteres
especiales (@, &), ni palabras reservadas del lenguaje de programacin
(else, if, end).
En Mtodo abreviado: ingresa una combinacin de teclas para la
ejecucin de la macro. Se sugiere que sea en minsculas, pues as en el
momento d ejecutarla se presionar simultneamente las dos teclas,
para el ejemplo, Crtl + f.
En Guardar macro en, selecciona En este libro, para que la macro se
guarde en el archivo que se est guardando la macro.
En Descripcin, se digita un texto que describa lo que realiza la macro;
este punto es opcional.
Haz clic en Aceptar.
-
7/21/2019 Tutorial Excel VBAplication
11/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
11
Observa que el icono cambia a lo que indica que
se est grabando la macro.
Luego empieza a grabar los formatos solicitados, por ejemplo, paraseleccionar el color de fuente realiza lo siguiente:
Selecciona la la ficha Inicio.
Haz clic en Fuente.
Elige el color, para el ejemplo el color azul.
-
7/21/2019 Tutorial Excel VBAplication
12/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
12
De similar forma selecciona el tipo de fuente solicitado, para el caso,
eligeComic Sans MS.Selecciona la fuente, elige 18.
Finalmente, aplica negrita.
Visualiza el formato que acabas de grabar en la macro.
-
7/21/2019 Tutorial Excel VBAplication
13/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
13
Para detener la macro haz clic en
Tambin puedes detener la macro si realizas lo siguiente:
Selecciona la ficha Programador.
En el grupo Cdigo, haz clic en Detener grabacin.
-
7/21/2019 Tutorial Excel VBAplication
14/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
14
EJECUTAR MACROS
Observa que la macro se ha detenido.
Observa que el icono cambia de a lo que
indica que se ha detenido la grabacin de la macro.
Una vez grabada la macro puedes probar su ejecucin. Para esto
realiza lo siguiente:
Digita un texto en una celda.
Selecciona la celda que contiene el texto.
Presiona simultneamente las teclas asignadas en el mtodo
abreviado, para el ejemplo, presiona simultneamente las teclas
control y la tecla f .
-
7/21/2019 Tutorial Excel VBAplication
15/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
15
Otra forma de ejecutar es:
Selecciona la fichaProgramador.
En el grupo Cdigo, selecciona Macros.
Se visualiza el cuadro de dilogo Macro.
Selecciona la macro que creaste, para el ejemplo, formato_azul.
Haz clic en Ejecutar.
-
7/21/2019 Tutorial Excel VBAplication
16/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
16
ACCESAR AL AMBIENTE DE VISUAL BASIC
Cuando deseas modificar o revisar el cdigo generado en una macro, es
necesario ingresar al ambiente de Visual Basic, para esto realiza lo siguiente:
Selecciona la ficha Programador.
Haz clic en Macros.
-
7/21/2019 Tutorial Excel VBAplication
17/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
17
Visualiza el cuadro de dilogo Macro.
Selecciona la macro a modificar.
Haz clic en Modificar.
Visualiza el cdigo que contiene la macro.
Para regresar al ambiente de MS Excel haz clic en el icono
-
7/21/2019 Tutorial Excel VBAplication
18/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
18
Otra forma de accesar al ambiente de Visual Basices:
Selecciona cualquier hoja de tu libro de Excel.
Haz un clic derecho.
Selecciona Ver cdigo.
-
7/21/2019 Tutorial Excel VBAplication
19/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
19
Visualiza el cuadro de dilogo de Microsoft Visual Basic.
Haz clic en Mdulo1.
Si no presenta esta pantalla, haz clic en Ver, y selecciona Explorador
de proyectos.
Una tercera forma de accesar al ambiente de Visual Basices:
Selecciona la ficha Programador.
Haz clic en Visual Basic.
-
7/21/2019 Tutorial Excel VBAplication
20/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
20
Finalmente, puedes accesar al ambiente de Visual Basic, presionando
simultneamente las teclas Alty F11
MODIFICAR MACROS
Por ejemplo, modifica en la macro el tipo de letra Arial y de tamao 20.
Para realizar este cambio realiza lo siguiente:
Selecciona la ficha Programador.
Haz clic en Macros.
Visualiza el cuadro de dilogo Macro.
Selecciona la macro a modificar.
Haz clic en Modificar.
-
7/21/2019 Tutorial Excel VBAplication
21/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
21
Visualiza el cdigo que contiene la macro.
Observa el cdigo de la macro:
Una macro incia en:
Sub formato_azul()
y temina en End Sub
formato_azul() Es el nombre de la macro.
-
7/21/2019 Tutorial Excel VBAplication
22/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
22
El texto en color verde, son comentarios que puedes colocar en tu macro;
estos no son interpretados por el compilador de Visual Basic. Para comentar
una lnea se utiliza un apstrofo (').
A continuacin se explica el significado de cada lnea del cdigo generado en el
lenguaje de Visual Basic:
1Inicia la macro de nombre formato_azul().
Desde la lnea 2 a la 6 son comentarios de la macro que no son
interpretados por el compilador.
7Funcin que agrupa las propiedades del objeto fuente.
8Selecciona la fuente de nombre "Comic Sans MS".
9Aplica el tamao de 18 a la fuente seleccionada.
10Desactiva el tachado de fuente.
11Desactiva la opcin de superndice a la fuente.
12Desactiva la opcin de subndice a la fuente.
13Sin aplicar esquema a la fuente.
-
7/21/2019 Tutorial Excel VBAplication
23/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
23
14Sin sombra.
15Sin subrayado.
16Color azul.
17 Color de tema neutro.
18Sin tema de fuente.
19Cerrar la funcin que agrupa a las propiedades de la fuente.
20No aplicar negrita a la fuente.
21Cerrar la estructura de la macro.
Para modificar la macro ingresa al ambiente de Visual Basic, edita la
macro y realiza los cambios.
Modifica en .Name ="Arial"
Y en .Size=20.
Visualiza los cambios:
Visualiza que se han modificado las lneas 8y 9.
-
7/21/2019 Tutorial Excel VBAplication
24/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
24
Guardar los cambios.
CDIGOS MS COMUNES EN MACROS
Trasladarse a una Celda
Range("A1").Select
-
7/21/2019 Tutorial Excel VBAplication
25/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
25
Escribir en una Celda
Activecell.FormulaR1C1="Paty Acosta"
Letra Negrita
Selection.Font.Bold = True
Letra Cursiva
Selection.Font.Italic = True
Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
Centrar Texto
With Selection
.HorizontalAlignment = xlCenter
End With
Alinear a la izquierda
With Selection
.HorizontalAlignment = xlLeft
End With
Alinear a la Derecha
With Selection
.HorizontalAlignment = xlRight
End With
Tipo de Letra(Fuente)
With Selection .Font
.Name = "AGaramond"
-
7/21/2019 Tutorial Excel VBAplication
26/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
26
End With
Tamao de Letra(Tamao de Fuente)
With Selection.Font
.Size = 15
End With
Copiar
Selection.Copy
Pegar
ActiveSheet.Paste
Cortar
Selection.Cut
Ordenar AscendenteSelection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Orden Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Buscar
Cells.Find(What:="Paty Acosta", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
-
7/21/2019 Tutorial Excel VBAplication
27/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
27
Insertar Fila
Selection.EntireRow.Insert
Eliminar Fila
Selection.EntireRow.Delete
Insertar Columna
Selection.EntireColumn.Insert
Eliminar Columna
Selection.EntireColumn.Delete
Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\miarchivo.xls"
Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\tauro.xls", FileFormat_
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=
_
False, CreateBackup:=False
ASIGNAR UNA MACRO A UN BOTN DE FORMULARIO
Una macro puede ser asignada a un botn de formulario.
Prctica
Realizar una macro que calcule el valor de la cantidad por el valor del
producto. Luego permitir que se arrastre la frmula y asignar la macro a un
botn de formulario.
-
7/21/2019 Tutorial Excel VBAplication
28/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
28
La solucin al ejercicio planteado es la siguiente:
Selecciona la ficha Programador.
Haz clic en Grabar macro.
Se visualiza el cuadro de dilogo Grabar macro.
En Nombre de la macro digita el nombre calcular_valor.
En Guardar macro en, selecciona Este libro.
En Descripcin, digita una descripcin la mima que es opcional.Haz clic en Aceptar.
-
7/21/2019 Tutorial Excel VBAplication
29/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
29
Haz clic en fx.
Se visualiza el cuadro de dilogo Insertar funcin.
Haz clic en SI.ERROR.
Se visualiza el cuadro de dilogo Argumentos de funcin.
En Valor digita la frmula D14*E14.
En Valor_si error digita 0.
Arrastra la frmula.
Haz clic enDetener grabacin.
Asignar la macro a un botn de Controles de formulario
Selecciona la ficha Programador.
Haz clic en Insertar.
En el grupo de Controles de formulario; selecciona el botn.
-
7/21/2019 Tutorial Excel VBAplication
30/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
30
Dibuja el botn en un rea de la hoja de clculo.
Visualiza que se activa el cuadro de dilogoAsignar macro.
Selecciona la macro creada anteriormente, en este caso
calcular_valor.
Haz clic enAceptar.
-
7/21/2019 Tutorial Excel VBAplication
31/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
31
Se visualiza:
Digita un nombre para el botn; por ejemplo, Calcular total.
El botn est listo para ejecutar el clculo del Valor total.
Si deseas probar borra el rango de F14 a F23; presiona el botn Calcular
Total; podrs observar que se borran los datos comprendidos en el rango
de F14 a F23.
-
7/21/2019 Tutorial Excel VBAplication
32/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
32
ASIGNAR A UNA FORMA
Una macro puede ser asignada a una forma.
Prctica
La macro creada anteriormente asgnala a una forma.
La solucin al ejercicio planteado es la siguiente:
Selecciona la ficha Insertar.
Haz clic en Formas.
Selecciona una forma.
-
7/21/2019 Tutorial Excel VBAplication
33/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
33
Selecciona la forma.
Elige un color de relleno para la forma.
-
7/21/2019 Tutorial Excel VBAplication
34/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
34
Selecciona la forma.
Haz clic derecho sobre la forma.
Selecciona Asignar macro...
-
7/21/2019 Tutorial Excel VBAplication
35/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
35
Se visualiza el cuadro de dilogo Asignar macro.Haz clic en la macro calcular_valor.
-
7/21/2019 Tutorial Excel VBAplication
36/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
36
PREPARAR EL LIBRO PARA TRABAJAR CON CONTROLES ACTIVEX
Una de las opciones ms interesantes que tiene Excel 2010 es la de utilizar los
cuadros de control. Los cuadros de control se aplican para crear
verdaderos programas en Excel y pueden ser de mucha utilidad.
Lo primero que debes hacer para trabajar con los cuadros de control en
Excel 2010, es preparar el libro; recuerda aplicar lo estudiado anteriormente
en la unidad de macros. Para esto sigue el siguiente proceso:
Lo primero que debes hacer en Excel 2010, para empezar a grabar una macro
es:
Habilitar la pestaa Programador.
Para esto realiza lo siguiente:
-
7/21/2019 Tutorial Excel VBAplication
37/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
37
Haz clic en Archivo.
Selecciona Opciones.
Haz clic en la opcin Personalizar cinta de opciones.
Activar con un visto la opcin Programador.
Haz clic en Aceptar.
-
7/21/2019 Tutorial Excel VBAplication
38/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
38
Se visualiza:
-
7/21/2019 Tutorial Excel VBAplication
39/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
39
Luego guarda tu libro de Excel como libro de Excel habilitado para macros,
cuya extensin es .xlsm.
Para esto realiza lo siguiente:
Selecciona Archivo.
Haz clic en Guardar como.
Se visualiza:
Digita un nombre por ejemplo, miprimeramacro.
Verifica que sea del tipo Libro de Excel habilitado para macros.
Haz clic en Guardar.
-
7/21/2019 Tutorial Excel VBAplication
40/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
40
Para habilitar las seguridades de las macros realiza lo siguiente:
Selecciona la pestaa Programador.
Haz clic en Seguridad de macros.
Se visualiza:
-
7/21/2019 Tutorial Excel VBAplication
41/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
41
Haz clic en Configuracin de macros
Selecciona Habilitar todas las macros (no recomendado; puede ejecutar cdigo
posiblemente peligroso)
Haz clic en Aceptar
TRABAJAR CON CONTROLES ACTIVEX
Una de las opciones ms interesantes que tiene Excel 2010 es la de utilizar los
cuadros de control. Los cuadros de control se aplican para crear
verdaderos programas en Excel y pueden ser de mucha utilidad.
La herramienta de Controles ActiveX est ubicada en el grupo Controles de
la pestaa Programador.
Para esto realiza lo siguiente:
Selecciona la ficha Programador.
Localiza el grupoControles.
-
7/21/2019 Tutorial Excel VBAplication
42/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
42
SeleccionaInsertar.
Visualiza losControles ActiveX.
Dentro de este grupo de Controlesse pueden identificar las opciones ms
importantes:
1.Insertar: Inserta los objetos de formulariosy de los Controles ActiveX.
2. Modo Diseo: Permitir trabajar en el diseo de los Controles ActiveX.
-
7/21/2019 Tutorial Excel VBAplication
43/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
43
3. Propiedades: Visualiza las propiedades de cada objeto.
4. Ver cdigo: Permite agregar, editar y modificar el cdigo a cada control.
Prctica
En la empresa te han solicitado disear un men con varios botones que al
presionarlos pasen a las distintas opciones. Para dar solucin al problema
propuesto realiza lo siguiente:
Crea las hojas: Men, Ventas y Tabla dinmica.
Selecciona la hoja Men.
Selecciona la ficha Programador.
Localiza el grupoControles.
Haz clic en Insertar.
Localiza el grupoControles.
Selecciona el Botn de comando.
-
7/21/2019 Tutorial Excel VBAplication
44/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
44
Dibuja el objeto en un rea de tu hoja de clculo.
Selecciona el botn de comando.
Haz un clic derecho sobre el botn que seleccionaste.
Selecciona Propiedades.
Se visualiza el cuadro de dilogo Propiedades.
De este cuadro de propiedades se pueden diferenciar dos propiedades muy
importantes:
(Name):Se refiere al nombre que se har referencia durante la
programacin. Este nombre debe cumplir con la sugerencia de los nombres de
las macros. Si aplicamos buenas prcticas de programacin y siendo este
objeto un botn que enlazar a la hoja ventas lo llamaremos. btnventas.
-
7/21/2019 Tutorial Excel VBAplication
45/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
45
Sugerencias para el nombre de la macro:
No iniciar con nmeros, no contener espacios en blanco, ni caracteres
especiales (@, &), ni palabras reservadas del lenguaje de programacin
(else, if, end).
Caption:Esta propiedad es el nombre que se visualiza sobre el objeto; es
decir es transparente para el usuario. Para el ejemplo lo llamaremos Ir a
Ventas.
Se visualiza:
-
7/21/2019 Tutorial Excel VBAplication
46/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
46
CAMBIAR DE APARIENCIA AL BOTN DE COMANDO
Si deseas cambiar la apariencia del botn, puedes iniciar cambiando el color de
fondo del botn, el color, estilo, y tamao de la fuente.
Para cambiar el color de fondo realiza lo siguiente:
Selecciona el botn.
Haz clic derecho, selecciona Propiedades.
En el cuadro de dilogo de Propiedades, selecciona la propiedad
Backcolor.
-
7/21/2019 Tutorial Excel VBAplication
47/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
47
En la lista se visualiza los colores del Sistemay de la Paleta.
De la Paletaselecciona un color.
Visualizael resultado.
-
7/21/2019 Tutorial Excel VBAplication
48/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
48
Para cambiar el color de la fuente realiza lo siguiente:
Selecciona el botn.
Haz clic derecho, selecciona Propiedades.
En el cuadro de dilogo de Propiedades, selecciona la propiedad
Forecolor.
En la lista se visualiza los colores del Sistemay de la Paleta.
De la Paletaselecciona un color.
-
7/21/2019 Tutorial Excel VBAplication
49/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
49
Para cambiar el tipo, estilo y tamao de la fuente realiza lo siguiente:
Selecciona el botn.
Haz clic derecho, selecciona Propiedades.
En el cuadro de dilogo de Propiedades, selecciona la propiedad Font.
Se visualiza el cuadro de dilogo Fuente.
En Fuenteselecciona el tipo: Arial.
En Estilo de fuenteselecciona: Negrita.
En Tamaoselecciona:10.
Haz clic en Aceptar.
-
7/21/2019 Tutorial Excel VBAplication
50/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
50
Visualiza el resultado.
INSERTAR UN ICONO EN EL BOTN DE COMANDO
Para insertar un icono en el botn de Controles ActiveX, te sugiero
prepares los iconos con extensin .ico.
Para insertar un icono realiza lo siguiente:
-
7/21/2019 Tutorial Excel VBAplication
51/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
51
Selecciona el botn.
Haz clic derecho, selecciona Propiedades.
En el cuadro de dilogo de Propiedades, selecciona la propiedad
Picture.
En (Ninguno), haz clic en el botn...
Se visualiza el cuadro de dilogoCargar imagen.
Selecciona el archivo de extensin .ico. Los archivos .ico son archivos
diseados para cargar exclusivamente en los botones. de comando.
Puedes buscar en tu disco duro archivos de extensin .icoe insertar en
este tipo de botones. Slo se insertan los que son compatibles con
Microsoft.
Haz clic en Abrir.
-
7/21/2019 Tutorial Excel VBAplication
52/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
52
Visualiza el resultado.
-
7/21/2019 Tutorial Excel VBAplication
53/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
53
INSERTAR CDIGO EN EL BOTN DE COMANDO
Si deseas navegar entre las hojas Men, Tabla dinmica y Ventas se requiere
insertar un cdigo de programacin en los botones creados.
Para insertar el cdigo realiza lo siguiente:
Selecciona el botn.
Haz doble clic.
-
7/21/2019 Tutorial Excel VBAplication
54/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
54
Se visualiza el ambiente de Visual Basic Applications.
Si no visualizas el panel de la izquierda, puedes activar desde Ver al
hacer clic en Explorador de proyectos.
Observa que el cursor se ubica en el rea en donde debes digitar el
cdigo.
Pon atencin en el nombre que se ubica en el panel de la izquierda en el
nombre entre parntesis; contiene el nombre de la hoja con la cual
deseas enlazar.En la programacin para hacer referencia a la hoja ventas, el nombre
que tomars ser Hoja2
-
7/21/2019 Tutorial Excel VBAplication
55/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
55
Digita Hoja2.
Observa que al digitar el punto (.) automticamente VBAdespliega una
pantalla de opciones.
Haz doble clic enActivate.
El cdigo digitado es: Hoja2.Activate, este cdigo indica que ests
activando la Hoja2(ventas)en este caso se enlazar con la hoja
ventasque es visible para el usuario final. Hoja2es el Namede la
hoja, es decir es el nombre que se hace referencia en la programacin.
-
7/21/2019 Tutorial Excel VBAplication
56/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
56
Para regresar al ambiente de Excel, haz clic en el icono .
Visualiza el botn Ir a Ventasen el ambiente deMs Excel.
Para que el botn funcione, desactiva el Modo Diseo. Es decir antes de
hacer clic en el botn Ir a Ventasla opcin Modo Diseono debe estar
en color naranja.
Visualiza el ambiente de Ms Excel.
El botn Ir a Ventas est listo para hacer clic.Haz clic en Ir a Ventas.
Visualiza la hoja ventas.
Aplica el mismo criterio para programar el botn Ir a Tabla Dinmica.
Selecciona el botn.
Haz doble clic.
Se visualiza el ambiente de Visual Basic Applications.
Si no visualizas el panel de la izquierda, puedes activar desde Ver al
hacer clic en Explorador de proyectos.
Observa que el cursor se ubica en el rea en donde debes digitar el
cdigo.
Pon atencin en el nombre que se ubica en el panel de la izquierda en el
nombre entre parntesis; contiene el nombre de la hoja con la cual
deseas enlazar.
-
7/21/2019 Tutorial Excel VBAplication
57/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
57
En la programacin para hacer referencia a la hoja Tabla dinmica, el
nombre que tomars ser Hoja3
Digita Hoja3.
Observa que al digitar el punto (.) automticamente VBAdespliega una
pantalla de opciones.
Haz doble clic enActivate.
El cdigo digitado es: Hoja3.Activate, este cdigo indica que ests
activando la Hoja3 (Tabla dinmica)en este caso se enlazar con la
hoja Tabla dinmica que es visible para el usuario final. Hoja3 es el
Name de la hoja, es decir es el nombre que se hace referencia en la
programacin.
De similar forma, programa el botn Ir a Men, en donde podrs
navegar en tu libro de Ms Excel.
Selecciona el botn.
Haz doble clic.
Se visualiza el ambiente de Visual Basic Applications.
Si no visualizas el panel de la izquierda, puedes activar desde Ver al
hacer clic en Explorador de proyectos.
Observa que el cursor se ubica en el rea en donde debes digitar el
cdigo.
-
7/21/2019 Tutorial Excel VBAplication
58/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
58
Pon atencin en el nombre que se ubica en el panel de la izquierda en el
nombre entre parntesis; contiene el nombre de la hoja con la cual
deseas enlazar.
En la programacin para hacer referencia a la hoja Men, el nombre que
tomars ser Hoja1
Digita Hoja1.
Observa que al digitar el punto (.) automticamente VBAdespliega una
pantalla de opciones.
Haz doble clic enActivate.
El cdigo digitado es: Hoja1.Activate, este cdigo indica que ests
activando la Hoja1(Men)en este caso se enlazar con la hoja Men
que es visible para el usuario final. Hoja1 es el Name de la hoja, es
decir es el nombre que se hace referencia en la programacin.
Para regresar al ambiente de Excel, haz clic en el icono .
Visualiza el ambiente de Ms Excel.
El botn Ir a Men est listo para hacer clic.
Haz clic en Ir a Men.
Para mejorar la interfaz de la hoja Men.
Selecciona la ficha Insertar.
Haz clic en Imagen.
-
7/21/2019 Tutorial Excel VBAplication
59/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
59
Selecciona una imagen en formato .jpg.
Haz clic en Insertar.
Visualiza el resultado.
Ahora para quitar lasLneas de cuadrcula, realiza lo siguiente:
Selecciona Vista.
Haz clic en Mostrar u ocultar.
Haz clic en la casilla Lneas de cuadrcula.
Quita el visto de la casilla.
Visualiza el resultado.
Para navegar en el libro, salga del Modo de Diseo y navega con los botones
que programaste.
Ms adelante utilizars estos botones para cargar formularios desde VBAen
Excel.
Tambin puedes aadir el cdigo de las macros que grabaste con la grabadora.
CREAR FORMULARIOS
Ahora aprenderemos a dominar lo mximo de Excel que es crear formularios y
programarlos, bueno un formulario es una ventana que se programa por medio
de controles y estos controles responden a sucesos que nosotros
programamos. Todo esto se encuentra dentro de Visual Basic.
A continuacin muestro como crear un formulario y como programarlo.
Iniciemos:
Primero crears una interfaz en el ambiente de Excel, para esto realiza lo
siguiente:
Selecciona la ficha Insertar.
Haz clic en WordArt.
Selecciona un diseo.
Digita un nombre, por ejemplo Clientes.
Digita las etiquetas Nombre en la celda A7.
Digita las etiquetas Direccinen la celda B7.
-
7/21/2019 Tutorial Excel VBAplication
60/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
60
Digita las etiquetas Telfonoen la celda C7.
Selecciona una hoja.
Haz clic derecho.
Selecciona Ver cdigo.
Tambin puedes presionar simultneamente las teclas Alt + F11, para entrar
al editor de Visual Basic.
Visualiza en ambiente de VBA.
Activa las siguientes opciones:
Da clic en el men Ver.
Selecciona la opcin Explorador de Proyectos.
Da clic en el men Insertar.
Haz clic en UserForm.
Visualiza el formulario
-
7/21/2019 Tutorial Excel VBAplication
61/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
61
Selecciona el formulario.
Haz clic en Propiedades.
Visualiza el cuadro de dilogo de Propiedades.En Namedigita frmclientes.
En Captiondigita: Agregar clientes.
En Backcolorselecciona un color.
Haz clic sobre el formulario.
Se activa el Cuadro de herramientas.
Selecciona el objeto Label que se representa con el icono .
-
7/21/2019 Tutorial Excel VBAplication
62/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
62
Dibuja el objeto en el formulario.
Haz clic dentro de la etiqueta y escribe: Nombre:
Dibuja las dems etiquetas en el formulario.
-
7/21/2019 Tutorial Excel VBAplication
63/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
63
Frente a cada etiqueta coloca un TextBox o cuadro de texto, el objeto
presenta el siguiente icono
Para colocar las tres cajas de texto con el mismo ancho y alto realiza lo
siguiente:
Selecciona la primera caja de texto.
Mantn presionada la tecla Shift.
Selecciona los dems objetos.
En la propiedad Heightdigita 20.
En Widthdigita 120.
-
7/21/2019 Tutorial Excel VBAplication
64/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
64
Visualiza como lucen las cajas de texto con un alto de 20 y un ancho de
120.
Ahora colocaremos nombres (Name)a las cajas de texto, por ejemplo a
la caja que recibir el nombre la llamars TextBoxnombre, recuerda
-
7/21/2019 Tutorial Excel VBAplication
65/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
65
que a los nombres (Name) se aplican los criterios de los nombres de las
macros.
Sugerencias para el nombre de la macro:
No iniciar con nmeros, no contener espacios en blanco, ni caracteres
especiales (@, &), ni palabras reservadas del lenguaje de programacin
(else, if, end).
A la caja que recibir la direccin la llamars TextBoxdireccion.
-
7/21/2019 Tutorial Excel VBAplication
66/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
66
A la caja que recibir el telfono la llamars TextBoxtelefono.
Ahora inserta un botn de comando, para esto haz clic en el icono
Dibuja el objeto.
Para mejorar la interfaz del botn realiza lo siguiente:
Selecciona el botn.
Haz clic derecho.
Selecciona Propiedades.
En Propiedades, en Name digita btninsertar, recuerda que a los
nombres (Name) se aplican los criterios de los nombres de las macros.
-
7/21/2019 Tutorial Excel VBAplication
67/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
67
Sugerencias para el nombre de la macro:
No iniciar con nmeros, no contener espacios en blanco, ni caracteres
especiales (@, &), ni palabras reservadas del lenguaje de programacin
(else, if, end).
En Backcolorselecciona un color.
En Captiondigita Insertar.
En Forecolorselecciona un color para la fuente.
En Pictureinserta un icono.
En PicturePositionselecciona una posicin para el icono.
Visualiza como luce el botn Insertar.
Aplica el mismo criterio para el botn Salir.
Selecciona el botn.
Haz clic derecho.
Selecciona Propiedades.
En Propiedades, en Namedigita btnsalir, recuerda que a los nombres
(Name) se aplican los criterios de los nombres de las macros.
En Backcolorselecciona un color.
-
7/21/2019 Tutorial Excel VBAplication
68/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
68
En Captiondigita Salir.
En Forecolorselecciona un color para la fuente.
En Pictureinserta un icono.
En PicturePositionselecciona una posicin para el icono.
Visualiza como luce el botn Salir.
CARGAR UN FORMULARIO EN EXCEL
Una macroes una serie de instrucciones que se almacenan para que se
puedan ejecutar de forma secuencial mediante una sola llamada u orden de
ejecucin.
A continuacin aprenderemos a programar un botn para cargar un formulario
desde el ambiente de VBAal ambiente Ms Excel.
Para esto realiza lo siguiente:
Selecciona la ficha Programador.
Localiza el grupoControles.
-
7/21/2019 Tutorial Excel VBAplication
69/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
69
Haz clic enInsertar.
Selecciona el botn de comando .Selecciona el botn.
Haz clic derecho.
Selecciona Propiedades.
En Propiedades, en Name digita btnagregar, recuerda que a los
nombres (Name) se aplican los criterios de los nombres de las macros.
En Backcolorselecciona un color.
En Captiondigita Agregar.
En Forecolorselecciona un color para la fuente.
En Pictureinserta un icono.
En PicturePositionselecciona una posicin para el icono.
Visualiza como luce el botn Agregar clientes.
Para agregar el cdigo que permita cargar el formulario desde el ambiente de
VBAen Excel, realiza lo siguiente:
Selecciona el botn.
Haz doble clic sobre el botn.
Digita el cdigo:
Private Subbtnagregar_Clic()
Load frmclientes
frmclientes.Show
End Sub
Haz clic en el icono para regresar al ambiente de Ms Excel.
-
7/21/2019 Tutorial Excel VBAplication
70/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
70
Para ejecutar el cdigo cargado en el botn Agregar clientes, desactiva
el Modo Diseo.
Haz clic en el botn Agregar clientes.
Visualiza que se cargar el formulario.
Para que se cargue el formulario en una posicin ms adecuada en la pantalla
del ambiente de Excel realiza lo siguiente:Selecciona el formulario.
Haz clic derecho, selecciona Propiedades.
En Left digita 250.
En Topdigita 250.
Puedes jugar colocando valores en estas dos propiedades para lograr una
mejor ubicacin de tu formulario en tu pantalla de Excel.
-
7/21/2019 Tutorial Excel VBAplication
71/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
71
Visualiza la nueva ubicacin en la que se carga el formulario.
PROGRAMAR UN FORMULARIO
Con las macros lo que se pretende es automatizar varias tareas y fusionarlas
en una sola, aadiendo por ejemplo un botn en nuestro libro que al pulsar
sobre l realice todas esas tareas.
Para esto programaremos el formulario clientes que permitir ingresar datos
en la hoja de clculo.
En el ejercicio anterior realiza lo siguiente:
Ingresa al ambiente de VBA, al presionar simultneamente las teclas
ALT + F11.
Haz doble clic en el formulario frmclientes.
-
7/21/2019 Tutorial Excel VBAplication
72/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
72
Selecciona la primera caja de texto.
Haz doble clic sobre el objeto.
Se visualiza el rea en donde se puede digitar el cdigo.
Digita el cdigo:
Private SubTextBoxnombre_Change()
Range("A8").Select 'Selecciona la celda A8
ActiveCell.FormulaR1C1 = TextBoxnombre'Escribe en A8 el contenido de la caja
TextBoxnombre
End Sub
El texto precedido del apstrofo (texto en color verde) no es interpretado por el
compilador.
De similar forma procede para los objetos TextBoxdireccion.
Selecciona la caja de texto.
Haz doble clic sobre el objeto.
Se visualiza el rea en donde se puede digitar el cdigo.
-
7/21/2019 Tutorial Excel VBAplication
73/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
73
Digita el cdigo:
Private SubTextBoxdireccion_Change()
Range("B8").Select 'Selecciona la celda B8
ActiveCell.FormulaR1C1 = TextBoxdireccion'Escribe en A8 el contenido de la
caja TextBoxdireccion
End Sub
De similar forma procede para los objetos TextBoxtelefono.
Selecciona la caja de texto.
Haz doble clic sobre el objeto.
Se visualiza el rea en donde se puede digitar el cdigo.
Digita el cdigo:
Private SubTextBoxtelefono_Change()
Range("C8").Select 'Selecciona la celda C8
ActiveCell.FormulaR1C1 = TextBoxtelefono'Escribe en A8 el contenido de la caja
TextBoxtelefono
End Sub
Haz clic en el icono para regresar al ambiente de Ms Excel.
-
7/21/2019 Tutorial Excel VBAplication
74/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
74
Haz clic en el botn Agregar Clientes.
Visualiza el formulario.
Ingresa los datos.
Visualiza los datos ingresados.
A continuacin aprenders a programar el botn Insertar, para esto realiza lo
siguiente:
Selecciona el botn Insertar.
Haz doble clic.
Se visualiza el rea en donde se puede digitar el cdigo.
-
7/21/2019 Tutorial Excel VBAplication
75/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
75
Digita el cdigo:
Private Subbtninsertar_Clic()
'inserta un rengln
Selection.EntireRow.Insert
'Empty limpia los Textbox
TextBoxnombre = Empty
TextBoxdireccion = Empty
TextBoxtelefono = Empty
'Enva el cursor a TextBoxnombre
TextBoxnombre.SetFocus
End Sub
Haz clic en el icono para regresar al ambiente de Ms Excel.
Ingresa los datos, observa que se inserta un rengln.
A continuacin programars el botn Salir, para esto realiza lo siguiente:
Selecciona el botn Salir.
Haz doble clic.
Se visualiza el rea en donde se puede digitar el cdigo.
Digita el cdigo:
-
7/21/2019 Tutorial Excel VBAplication
76/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
76
Private Subbtnsalir_Clic()
End
End Sub
Haz clic en el icono para regresar al ambiente de Ms Excel.
Prueba el botn Salir.
TRABAJAR CON FRMULAS
Es de suma importancia saber aplicar Formulas en Macros de Excel, ya que la
mayora de las hojas de clculos las involucran, por ejemplo los Inventarios,las Nominas o cualquier otro tipo de hoja las llevan, es por eso que en este
tema se muestra como manejar Formulas en Macros de Excel.
Ingresa al ambiente de VBA, al presionar simultneamente las teclas ALT +
F11.
Diseaen el ambiente deExceluna interfaz que contendr:
Un WordArt
Un botn de Controles ActiveX.
Tres etiquetas, Nombre, Edad y Das vividos.
Diseaun formulario en el ambiente deVBAque contendr:
Tres Label o etiquetas.
Tres Textbox o cuadros de texto.
Dos botones de comando.
-
7/21/2019 Tutorial Excel VBAplication
77/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
77
Los datos que se solicitarn sern el Nombre y la Edad, los Das
Vividosse generaran automticamente cuando insertes la edad.
Para el botn diseado desde los Controles ActiveX; el botn Agregar
tendr como Name el nombre btnagregar, que es el nombre que se
hace referencia en la programacin.
En Captiondigita Agregar.
Mientras ests en el Modo Diseo.
Haz doble clic sobre el botn Agregar.
Digita el cdigo:
Private Subbtnagregar_Clic()
Load frmedad 'Carga el formulario frmedad
frmedad.Show 'Visualiza el formulario frmedad
End Sub
El formulario en el ambiente deVBAque contendrn los siguientes
objetos con sus respectivos Namey Caption.
El formulario en donde colocars los objetos tendr como Name:
frmdias, el Captionser Calcular das vividos.
El TextBox1 tendr como NameTextBoxnombre.
El TextBox2 tendr como NameTextBoxedad.
El TextBox3 tendr como NameTextBoxdias.
El Namedel botn Insertarser btninsertar.
El Captiondel botn Insertar ser Insertar.
El Namedel botn Salirser btnsalir.
El Captiondel botn Salir ser Salir.
-
7/21/2019 Tutorial Excel VBAplication
78/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
78
Programacin de los Controles:TextBoxnombre
Private Sub TextBoxnombre_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBoxnombre
End Sub
Programacin de los Controles:TextBoxedad
Private Sub TextBoxedad_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBoxedad
TextBoxdias = Val(TextBoxedad) * 365
End Sub
-
7/21/2019 Tutorial Excel VBAplication
79/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
79
Se aplica Val que permite transformar un dato de tipo texto en nmero.
Esto se debe a que los Textbox no son Numricos y debemos de Convertirlos.
El TextBoxdias guardara el total de la multiplicacin del TextBoxedad por
365.
Programacin de los Controles:TextBoxdias
Private Sub TextBoxdias_Change()
Range("C9").Select
ActiveCell.FormulaR1C1 = Val (TextBoxdias)
End Sub
Programacin de los Controles: btninsertar
Private Sub btninsertar_Clic()
Selection.EntireRow.Insert 'Inserta un rengln
TextBoxnombre = Empty
TextBoxedad = EmptyTextBoxdias = Empty
TextBoxnombre.SetFocus
End Sub
Programacin de los Controles: btnsalir
Private Sub btnsalir_Clic()
End
End Sub
PROTEGER UN PROYECTO DE VBA CON CLAVE
Un proyecto deVBAlo puedes proteger al colocar una clave. De tal forma que
no puedan cambiar o copiar la programacin.
Para esto ingresa en el ambiente de VBAy realiza lo siguiente:
Selecciona el proyecto.
Da un clic derecho sobre el proyecto
-
7/21/2019 Tutorial Excel VBAplication
80/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
80
Elige la opcin Propiedades deVBAProject
Haz clic en la pestaa Proteccin.
En el cuadro de dilogo VBAProject -Propiedades del proyecto.
Activa con un visto la opcin Bloquear proyecto para visualizacin.
Digita una contrasea.
Confirma la contrasea.
-
7/21/2019 Tutorial Excel VBAplication
81/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
81
Haz clic en Aceptar.
Guarda la configuracin.
Regresa al ambiente de Ms Excel.
Guarda el archivo en Ms Excel.
-
7/21/2019 Tutorial Excel VBAplication
82/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
82
Cierra el archivo de Ms Excel.
Vuelve a abrirlo.
Ingresa al ambiente de VBA.
Te solicitar la clave.
OBJETOS, PROPIEDADES Y MTODOS.
A la hora de trabajar con macros en Excel, deben tenerse claros ciertos conceptos de
lo que se llama programacin orientada a objetos (OOP). No nos extenderemos
demasiado sobre la OOP, pero si definiremos a continuacin los conceptos de
Objeto, Propiedades y Mtodos.
Objeto.
Cuando en el mundo real nos referimos a objeto significa que hablamos de algo
abstracto que puede ser cualquier cosa. Por ejemplo podemos referirnos a objetos
como coche, silla, casa, etc.
Cuando decimos que la clase coche representa a todos los coches del mundo
significa que define como es un coche, cualquier coche. Dicho de otra forma y para
aproximarnos a la definicin informtica, la clase coche define algo que tiene cuatro
-
7/21/2019 Tutorial Excel VBAplication
83/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
83
ruedas, un motor, un chasis,... entonces, cualquier objeto real de cuatro ruedas, un
motor, un chasis,... es un objeto de la clase coche.
Propiedades.Cualquier objeto tiene caractersticas o propiedades como por ejemplo el color, la
forma, peso, medidas, etc. Estas propiedades se definen en la clase y luego se
particularizan en cada objeto. As, en la clase coche se podran definir las
propiedades Color, Ancho y Largo, luego al definir un objeto concreto como coche
ya se particularizaran estas propiedades a, por ejemplo, Color = Rojo, Ancho = 2
metros y Largo = 3,5 metros.
Mtodos.
La mayora de objetos tienen comportamientos o realizan acciones, por ejemplo,
una accin evidente de un objeto coche es el de moverse o lo que es lo mismo,
trasladarse de un punto inicial a un punto final.
CONCEPTOS QUE ENCONTRAREMOS EN EXCEL
WorkSheet (Objeto hoja de clculo)
Range (Objeto celda o rango de celdas).
Un objeto Range est definido por una clase donde se definen sus propiedades,
recordemos que una propiedad es una caracterstica, modificable o no, de un
objeto. Entre las propiedades de un objeto Range estn Value, que contiene el valor
de la celda, Column y Row que contienen respectivamente la fila y la columna de la
celda, Font que contiene la fuente de los caracteres que muestra la celda, etc.
Range, como objeto, tambin tiene mtodos, recordemos que los mtodos sirven
llevar a cabo una accin sobre un objeto. Por ejemplo el mtodo Activate, hace
activa una celda determinada, Clear, borra el contenido de una celda o rango de
celdas, Copy, copia el contenido de la celda o rango de celdas en el portapapeles.
Conjuntos.
-
7/21/2019 Tutorial Excel VBAplication
84/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
84
Una conjunto es una coleccin de objetos del mismo tipo, para los que conozcan
algn lenguaje de programacin es un array de objetos. Por ejemplo, dentro de un
libro de trabajo puede existir ms de una hoja (WorkSheet), todas las hojas de unlibro de trabajo forman un conjunto, el conjunto WorkSheets.
Cada elemento individual de un conjunto se referencia por un ndice, de esta forma,
la primera, segunda y tercera hoja de un libro de trabajo, se referenciarn por
WorkSheets(1), WorkSheets(2) y WorkSheets(3).
Objetos de Objetos.
Es muy habitual que una propiedad de un objeto sea otro objeto. Siguiendo con el
coche, una de las propiedades del coche es el motor, y el motor es un objeto con
propiedades como caballos, nmero de vlvulas, etc. y mtodos, como
aumentar_revoluciones, coger_combustible, mover_pistones, etc.
En Excel, el objeto WorkSheets tiene la propiedad Range que es un objeto, Range
tiene la propiedad Font que es tambin un objeto y Font tiene la propiedad Bold
(negrita). Tenga esto muy presente ya que utilizaremos frecuentemente
Propiedades de un objeto que sern tambin Objetos. Dicho de otra forma, hay
propiedades que devuelven objetos, por ejemplo, la propiedad Range de un objeto
WorkSheet devuelve un objeto de tipo Range.
Programacin Orientada a Objetos o Programacin Basada en Objetos.
Hay una sutil diferencia entre las definiciones del ttulo. Programacin orientada a
Objetos, significa que el programador trabaja con objetos fabricados por l mismo,
es decir, el programador es quien implementa las clases para luego crear objetos a
partir de ellas. Lo que haremos nosotros, por el momento, ser utilizar objetos ya
definidos por la aplicacin Excel (WorkSheets, Range,...) sin implementar ninguno de
nuevo, por lo que en nuestro caso es ms correcto hablar de programacin basada
en objetos. Observe que esta es una de las grandes ventajas de la OOP, utilizar
-
7/21/2019 Tutorial Excel VBAplication
85/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
85
objetos definidos por alguien sin tener que conocer nada sobre su implementacin,
slo debemos conocer sus propiedades y mtodos y utilizarlos de forma correcta.
Editor de Visual Basic.El editor de Visual Basic es la aplicacin que utilizaremos para construir las macros
que interactuaran junto con los libros de trabajo. A continuacin prepararemos un
archivo en el que escribiremos las primeras instrucciones en Visual Basic.
Maximice la ventana para trabajar ms cmodamente y procure tener activadas la
ventana Explorador de proyectos y la ventana Propiedades (Ver/ Explorador deproyectos y Ver/ Ventana propiedades).
Insertar un nuevo mdulo.
Un mdulo sirve para agrupar procedimientos y funciones. El procedimiento y la
funcin son entidades de programacin que sirven para agrupar instrucciones de
cdigo que realizan una accin concreta.
Para insertar un mdulo active opcin del men Insertar/ Mdulo. Se activar una
nueva ventana, si aparece demasiado pequea, maximcela.
Insertar un procedimiento.
Un procedimiento es un bloque de instrucciones de cdigo que sirven para llevar a
cabo alguna tarea especfica. Un procedimiento empieza siempre con la instruccin
Sub Nombre_Procedimientoy termina con la instruccin End Sub.
-
7/21/2019 Tutorial Excel VBAplication
86/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
86
A continuacin crearemos un procedimiento para poner el texto "Hola" en la celda
A1.
EjemploSub Primero
Range("A1").Value = "Hola"
End Sub
Observe el cdigo.
Range("A1").Value="Hola"
En esta lnea estamos indicando que trabajamos con un objeto Range. Para indicarle
que nos referimos a la celda A1, encerramos entre parntesis esta referencia. De
este objeto, indicamos que queremos establecer un nuevo valor para la propiedad
Value, observe que para separar el objeto de su propiedad utilizamos la notacin
punto.
Recuerde que el conjunto Range es un objeto que pende del objeto WorkSheets, as
por ejemplo el siguiente cdigo hara lo mismo que el anterior.
WorkSheets(1).Range("A1").Value = "Hola"
Bueno, de hecho no hace lo mismo, en la primera opcin, el texto "Hola" se pone
dentro de la celda A1 de la hoja activa, mientras que en el segundo es en la celda A1
de primera hoja ( del conjunto de hojas).
La segunda notacin es ms larga, pero tambin ms recomendable ya que se
especifican todos los objetos. En muchas ocasiones se pueden omitir algunos
objetos precedentes, no le aconsejamos hacerlo, sus programas perdern claridad y
concisin.
Si desea hacer referencia a la hoja activa puede utilizar ActiveSheet, as, el primer
ejemplo lo dejaremos de la siguiente manera:
Sub Primero
-
7/21/2019 Tutorial Excel VBAplication
87/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
87
ActiveSheet.Range("A1").Value = "Hola"
End Sub
Si desea poner "Hola" (o cualquier valor) en la celda activa, puede utilizar la
propiedad (objeto) Activecell de WorkSheets. As para poner "Hola" en la celda
activa de la hoja activa seria,
Sub Primero
ActiveSheet.ActiveCell.Value = "Hola"
End Sub
Para terminar con este primer ejemplo. WorkSheets estn dentro del Objeto
WorkBooks (libros de trabajo) y WorkBooks estn dentro de Application.
Application es el objeto superior, es el que representa la aplicacin Excel. As, el
primer ejemplo, siguiendo toda la jerarqua de objetos quedara de la forma
siguiente:
Sub Primero
Application.WorkBooks(1).WorkSheets(1).Range("A1").Value = "Hola"
End Sub
Insistiendo con la nomenclatura, Application casi nunca es necesario especificarlo,
piense que todos los objetos dependen de este, WorkBooks ser necesario
implementarlo si en las macros se trabaja con diferentes libros de trabajo
(diferentes archivos), a partir de WorkSheets, es aconsejable incluirlo en el cdigo,
sobre todo si se quiere trabajar con diferentes hojas, ver, sin embargo, que en
muchas ocasiones no se aplica.
Ejecutar un procedimiento o funcin.
Pruebe ejecutar el primer procedimiento de ejemplo.
-
7/21/2019 Tutorial Excel VBAplication
88/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
88
1. Site el cursor dentro del procedimiento.
1. Active opcin de la barra de mens Ejecutar/ Ejecutar Sub Userform. Tambin
puede hacer clic sobre el botn o pulsar la tecla F5.
Para ejecutar el procedimiento desde la hoja de clculo.
Debe estar en una hoja, no en el editor de Visual Basic
1. Active opcin de la barra de mens Herramientas/ Macro/ Macros. Se despliega
una ventana que muestra una lista donde estn todas las macros incluidas en el
libro de trabajo.
2. Seleccione la macro de la lista y pulse sobre el botn Ejecutar.
Ejemplo
En este ejemplo simplemente ampliaremos la funcionalidad de la macro del ejemplo
1. Adems de escribir "Hola" en la celda A1, le pondremos en negrita y le daremos
color al texto.
Para ello utilizaremos las propiedades Bold y Color del objeto Font.
Sub Segundo
ActiveSheet.Range("A1").Value = "Hola"
ActiveSheet.Range("A1").Font.Bold = True
ActiveSheet.Range("A1").Font.Color = RGB(255,0,0)
End Sub
True.
True, que traducido es verdadero, simplemente indica que la propiedad Bold est
activada. Si se deseara desactivar, bastara con igualarla al valor False.
La funcin RGB.
-
7/21/2019 Tutorial Excel VBAplication
89/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
89
Observe que para establecer el color de la propiedad se utiliza la funcin RGB(Red,
Green, Blue), los tres argumentos para esta funcin son valores del 0 a 255 que
corresponden a la intensidad de los colores Rojo, Verde y Azul respectivamente.
Referenciar un rango de celdas.
Slo tiene que cambiar a la forma Celda_Inicial:Celda_Final. Por ejemplo aplicar el
ltimo ejemplo al rango de celdas que va de la A1 a la A8, ponga.
Sub Segundo
ActiveSheet.Range("A1:A8").Value = "Hola"
ActiveSheet.Range("A1:A8").Font.Bold = True
ActiveSheet.Range("A1:A8").Font.Color = RGB(255,0,0)
End Sub
-
7/21/2019 Tutorial Excel VBAplication
90/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
90
OBSERVANDO LOS CDIGOS DE UNA MACRO DE EXCEL
Crearemos una macro y veremos sus cdigos:
Para observar los cdigos de una macro debemos seguir los pasos:
1. Primeramente trasldese a la celda A5 antes de empezar la grabacin de la
Macro
2. Presione el Botn Grabar Macro de la barra de Herramientas Visual Basic.
Excelmuestra el cuadro de Dialogo Grabar Macro
3. en la opcin Mtodo Abreviado escriba la letra r, por lo tanto la macro se
llamara con Control + r
4. Presione el botn Aceptar. Excelinicia la grabacin del la Macro1
5. Trasldese a la celda A1y escriba su nombre, despus presione Enterpara
aceptar el valor en la celda
6. Pare la grabacin de la macro presionando el botn Detener Grabacin de la
barra de herramientas Visual Basic. Excel a grabado los pasos y a generado un
cdigo, Observmoslos:
7. Presione la tecla Alt + la tecla de funcin F11(Alt + F11). Excel nos traslada al
Editor de Visual Basic. Si este editor no se activa es que Excel no esta bien
instalado o se a borrado.
8. Active los siguientes cuadros o ventanas:
De clic en el Men Very elija la opcin Explorador de Proyectos
De clic en el Men very elija la opcin Ventana Propiedades
Estas dos opciones deben de estar siempre activadas ya que de ah depende todo lo
que vallamos a hacer.
-
7/21/2019 Tutorial Excel VBAplication
91/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
91
9. Del cuadro Proyecto de doble clic en Mdulos o simplemente presione el
signo de +que aparece en la opcin Mdulos. Se activara debajo de Mdulos
la Opcin Modulo1
10.De doble clic en Modulo1. Se mostrara en el Editor de Visual Basic el cdigo
de la macro que grabamos de la siguiente forma:
Sub Macro1()
' Macro1 Macro
' Macro grabada el 08/04/2005 por ....
' Acceso directo: CTRL+r
Range("A1").Select
ActiveCell.FormulaR1C1 = "Paty"
Range("A2").Select
End Sub
-
7/21/2019 Tutorial Excel VBAplication
92/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
92
Que es lo que significa esto nos preguntaremos asombrados, a continuacin se da
una explicacin de lo que ha hecho Excel:
Suby End Subindican el inicio y el final del procedimiento de la Macro1
Todo lo que aparece con un apstrofe indica que no se tomara en cuenta
que es solo texto o comentarios y ese texto debe de aparecer en un color, ya
sea el color verde.
Range("A1").SelectIndica que lo primero que hicimos al grabar la macro fue
trasladarnos a la celda A1. La orden Range nos permite trasladarnos a una
celda
ActiveCell.FormulaR1C1 = "Paty"Esto indica que se escribir en la celda en
que se encuentra el valor de texto Paty. Todo lo que aparece entre comillas
siempre ser un valor de texto. La orden ActiveCell.FormulaR1C1 nos permite
escribir un valor en la celda activa.
Range("A2").SelectOtra vez indicamos que se traslade a la celda A2. Esto se
debe a que cuando escribimos el nombre de Patyen A1presionamos Entery
al dar Enter bajo a la celda A2. Para comprender alteraremos el cdigo
dentro del editor de Visual Basic.
Sub Macro1()
' Macro1 Macro
' Macro grabada el 01/01/2009 por ....
' Acceso directo: CTRL+r
Range("A1").Select
ActiveCell.FormulaR1C1 = "Paty"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Almagro 1822"
Range("C1").Select
ActiveCell.FormulaR1C1 = "092794313"
-
7/21/2019 Tutorial Excel VBAplication
93/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
93
Range("D1").Select
ActiveCell.FormulaR1C1 = "Alpallana"
Range("E1").Select
ActiveCell.FormulaR1C1 = "SACCEC"
End Sub
As es acabo de alterar el cdigo y cuando regrese a Excely ejecute la macro con
Control + rhar lo siguiente:
En A1 escribir Paty
En B1 escribir Almagro 1822
En C1 escribir 092794313
En D1 escribir Alpallana
En E1 escribir SACCEC
As que salgamos del editor dando clic en el Men Archivo y eligiendo la opcin
Cerrar y volver a Microsoft Excel. Si no desea salir por completo de clic en el botn
Microsoft Excel que se encuentra activado en la barra de tareas y cuando dese
volver al editor de clic en el botn Microsoft Visual Basicque se encuentra en la
barra de Tareas.
Ahora ya que salimos de Visual Basicy estamos en Excelde Nuevo ejecutemos la
macro presionando Control + ry veamos los resultados de nuestra modificacin.
Practica II
Genera una Macroque escriba un nombre en una celda y lo ponga negrita y observa
el Cdigo.
-
7/21/2019 Tutorial Excel VBAplication
94/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
94
Genera una Macro que escriba un nombre en una celda y lo Centre y observa el
Cdigo.
Genera una Macroque escriba un nombre en una celda y cambie el tamao de laletra a 20 puntos y observa el Cdigo.
CDIGOS MS COMUNES
Trasladarse a una Celda
Range("A1").Select
Escribir en una Celda
Activecell.FormulaR1C1="Paty"
Letra Negrita
Selection.Font.Bold = True
Letra Cursiva
Selection.Font.Italic = True
Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
Centrar Texto
With Selection
.HorizontalAlignment = xlCenter
End With
Alinear a la izquierda
With Selection
.HorizontalAlignment = xlLeft
End With
Alinear a la Derecha
With Selection
.HorizontalAlignment = xlRight
-
7/21/2019 Tutorial Excel VBAplication
95/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
95
End With
Tipo de Letra(Fuente)
With Selection.Font
.Name = "AGaramond"
End With
Tamao de Letra(Tamao de Fuente)
With Selection.Font
.Size = 15
End With
Copiar
Selection.Copy
Pegar
ActiveSheet.Paste
Cortar
Selection.Cut
Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Orden Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Buscar
Cells.Find(What:="Paty", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Insertar Fila
-
7/21/2019 Tutorial Excel VBAplication
96/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
96
Selection.EntireRow.Insert
Eliminar Fila
Selection.EntireRow.Delete
Insertar Columna
Selection.EntireColumn.Insert
Eliminar Columna
Selection.EntireColumn.Delete
Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\video safe 3.xls"
Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\piscis.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
Variables.
A continuacin vamos a repetir el programa Ejemplo1, pero en lugar de poner
"Hola" en la celda A1 de la hoja activa, dejaremos que el usuario entre un texto
desde teclado y a continuacin guardaremos ese valor en esa celda. Observe que el
valor que entre del usuario debe guardarse en algn lugar para poder ponerlo
despus en la celda A1; pues bien, ese valor se guardar en una variable. Una
variable es simplemente un trozo de memoria que la funcin o procedimineto se
reserva para guardar datos, la forma general de declarar una variable es:
DIM variable AS tipo.
-
7/21/2019 Tutorial Excel VBAplication
97/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
97
Siendo variable el nombre que se asigna a la misma y Tipo el tipo de datos que se
guardarn (nmeros, texto, fecha, boleanos,...). En nuestro ejemplo, declararemos
la variable de tipo String (tipo texto), y lo haremos de la siguiente forma:
Dim Texto As String
Con esto estamos indicando que se reserve un trozo de memoria, que se llama
Texto y que el tipo de datos que se guardarn ah sern caracteres.
La Funcin InputBox.
Esta funcin muestra una ventana para que el usuario pueda teclear datos. Cuando
se pulsa sobre Aceptar, los datos entrados pasan a la variable a la que se ha igualado
la funcin. Vea la lnea siguiente:
Texto = InputBox("Introduzca el texto", "Entrada de datos").
Si en la ventana que muestra InputBox pulsa sobre el botn Aceptar, los datos
tecleados se guardarn el la variable Texto.
Sintaxis de InputBox.
InputBox(Mensaje, Ttulo, Valor por defecto, Posicin horizontal, Posicin Vertical,
Archivo ayuda, Nmero de contexto para la ayuda).
Mensaje : Es el mensaje que se muestra en la ventana. Si desea poner ms de una
lnea ponga Chr(13) para cada nueva lnea, vea el ejemplo siguiente.
Ttulo : Es el ttulo para la ventana InputBox. Es un parmetro opcional.
Valor por defecto: Es el valor que mostrar por defecto el cuadro donde el usuario
entra el valor.
Parmetro opcional.
-
7/21/2019 Tutorial Excel VBAplication
98/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
98
Posicin Horizontal: La posicin X de la pantalla donde se mostrar el cuadro,
concretamente es la posicin para la parte izquierda. Si se omite el cuadro se
presenta horizontalmente centrado a la pantalla.
Posicin Vertical: La posicin Y de la pantalla donde se mostrar el cuadro,
concretamente es la posicin para la parte superior. Si se omite el cuadro se
presenta verticalmente centrado a la pantalla.
Archivo Ayuda: Es el archivo que contiene la ayuda para el cuadro. Parmetro
opcional.
Nmero de contexto para la ayuda: Nmero asignado que corresponde al
identificador del archivo de ayuda, sirve para localizar el texto que se debe mostrar.
Si se especifica este parmetro, debe especificarse obligatoriamente el parmetro
Archivo Ayuda.
Ejemplo
Sub Entrar_Valor
Dim Texto As String
' Chr(13) sirve para que el mensaje se muestre en dos Lneas
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la celda A1",
"Entrada de datos")
ActiveSheet.Range("A1").Value = Texto
End Sub
Este ejemplo tambin se puede hacer sin variables.
Sub Entrar_Valor
ActiveSheet.Range("A1").Value = InputBox("Introducir un texto " & Chr(13) &
"Para la celda
A1", "Entrada de datos")
-
7/21/2019 Tutorial Excel VBAplication
99/183
MS Excel 2010 con Programacin de Macros en Visual Basic Application
Ing. Patricia Acosta, MSc. - Ing. Luis Salvador, [email protected]
99
End Sub
Ejemplo
Repetiremos el ejemplo anterior, pero en lugar de entrar los valores sobre la celda
A1, haremos que el usuario pueda elegir