Tutorial Excel VBAplication

download Tutorial Excel VBAplication

of 183

Transcript of 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