Práctica 1. Introducción a las macros en Excel y Word

Centro de Investigación Operativa - UMH

Ejercicio 1

Ejercicio 2

Ejercicio 3

Ejercicio 4

Ejercicio 5

Ejercicio 6


Objetivos.

Con esta primera práctica, se pretende que los alumnos tengan una primera toma de contacto con el entorno de Programación de Visual Basic para Aplicaciones, al mismo tiempo que se realiza una serie de macros como punto de partida para la creación de módulos de código.

 

Ejercicio 1.

Crear una macro en Excel de la siguiente forma:

  1. Poner en funcionamiento la grabadora de macros de Excel.

  2. Llamar a la macro “Macro1”, guardándola en el libro actual, de modo que se ejecuta al pulsar la combinación de teclas Control + m.



  3. Abrir un nuevo libro.

  4. Escribir en las celdas A1 a la A20 datos aleatorios entre 0 y 10.

  5. Poner los datos resultantes en letra Times New Roman, negrita, a tamaño 12.



  6. Hacer que no aparezcan decimales en los datos resultantes (Formato-Celdas-Número).Obviamente habrá que seleccionarlos previamente.

  7. Detener la grabación de la macro.

  8. Cerrar el libro que ha resultado (no es necesario que se guarde).

  9. Pulsar Control + m y observar los efectos de la macro.

  10. Observar el código en Visual Basic correspondiente a la macro (Herramientas-Macro-Macros-Modificar).

    Ejercicio 2.

    A pesar de la rapidez y simplicidad en la creación de macros por la grabadora, no siempre el código resultante en Visual Basic es el más eficaz.

    A continuación, se modificará el código de la macro resultante del ejercicio anterior, de modo que sea más breve pero el resultado será el mismo.

    ·         En el módulo de código, modificar las líneas que aparecen en la siguiente página en negrita, eliminando la primera de ellas y sustituyendo la segunda por:

    Range(“A1:A20”).FormulaR1C1 = "=RAND()*10"

    ·         Cerrar el editor de Visual Basic y el libro abierto. Volver a ejecutar la macro y comprobar que el resultado es el mismo.

    Sub Macro1()

    '

    ' Macro1 Macro

    ' Macro grabada el 24/02/98 por UMH

    '

    ' Acceso directo: CTRL+m

    '

        Workbooks.Add

        ActiveCell.Select

        ActiveCell.FormulaR1C1 = "=RAND()*10"

        ActiveCell.Select

        Selection.AutoFill Destination:=ActiveCell.Range("A1:A20"), Type:= _

            xlFillDefault

        ActiveCell.Range("A1:A20").Select

        With Selection.Font

            .Name = "Arial"

            .Size = 12

            .Strikethrough = False

            .Superscript = False

            .Subscript = False

            .OutlineFont = False

            .Shadow = False

            .Underline = xlUnderlineStyleNone

            .ColorIndex = xlAutomatic

        End With

        With Selection.Font

            .Name = "Times New Roman"

            .Size = 12

            .Strikethrough = False

            .Superscript = False

            .Subscript = False

            .OutlineFont = False

            .Shadow = False

            .Underline = xlUnderlineStyleNone

            .ColorIndex = xlAutomatic

        End With

        Selection.Font.Bold = True

        Selection.NumberFormat = "0"

        With Selection

            .HorizontalAlignment = xlCenter

            .VerticalAlignment = xlBottom

            .WrapText = False

            .Orientation = 0

            .ShrinkToFit = False

            .MergeCells = False

        End With

    End Sub

     

    Ejercicio 3

    En Excel, la grabadora de macros puede funcionar en dos modos: absoluto o relativo; para cambiar entre un modo u otro, disponemos de un botón de alternar que aparece junto al botón de Detener grabación.

    ·         Cuando se graba en modo absoluto, se almacena la referencia absoluta de todas y cada una de las celdas seleccionadas durante la grabación.

    ·         Cuando se graba en modo de referencia relativo y se seleccionan varias celdas, se almacena cada nueva selección en relación con la anterior.

    ·         Se puede alternar entre los modos absoluto y relativo en cualquier momento la grabación de la macro.

    A continuación, crearemos una macro muy sencilla para observar las diferencias entre uno y otro modo de grabación. La macro sumará la celda activa y el valor situado sobre ella. Para crearla, seguiremos los siguientes pasos:

    1.       Colocar estos valores en las celdas indicadas:

     

     

    A

    B

    C

    D

    1

     

     

     

     

    2

     

    10

     

    15

    3

     

    20

     

    25

    4

     

     

     

     

    2.       Seleccionar B3.

    3.       Comenzar la grabación de la macro, utilizando la grabación absoluta, con nombre Macro2, en el libro actual.

    4.       Seleccionar la celda B4 y escribir en ella la fórmula  = B2 + B3.

    5.       Detener la grabación.

    ·         Para observar el modo de funcionamiento de la macro:

    1.       Borrar B4.

    2.       Seleccionar D3 y ejecutar la macro.

    ·         Observar que el resultado aparecerá en B4, y no en D4.

    ·         Repetir la grabación de la macro, pero especificando el modo relativo, antes del paso 4 anterior. Al acabar, probar la nueva macro:

    1.       Borrar B4 y D4.

    2.       Seleccionar B3 y ejecutar la macro.

    3.       Seleccionar D3 y ejecutar la macro.

    ·         Observar que el resultado dependerá de la celda en la cual ha sido ejecutada.

    Ejercicio 4.

    A continuación, crearemos una macro con la que se representará gráficamente  un rango de celdas que puede ser variable. Seguiremos los siguientes pasos:

    1.       Crear la siguiente hoja de cálculo.

     

     

    A

    B

    C

    D

    1

    Producto

    Previsión 97

    Previsión 98

     

    2

    Pegatinas

    1000

    1178

     

    3

    Manillares

    10000

    10602

     

    4

    Bocinas

    2750

    2619

     

    5

    Bolsas

    3500

    3450

     

    6

    Sillines

    8000

    9900

     

    7

    Ruedas

    20000

    23250

     

     

     

    2. Comenzar la grabación de la macro, con nombre Macro3, en el libro actual.

    3. Seleccionar la región actual (rango de valores variable), colocando el cursor en A1 y picando en Edición-Ir a-Especial-Región actual.

    4. Pulsar F11 para obtener el gráfico predeterminado correspondiente a los datos.

    5. Interrumpir la grabación.

    6. Borrar el gráfico y añadir una nueva fila a la hoja con los datos Bombillas-1250-1480. Comprobad que la macro sigue funcionando a pesar de haber aumentado el rango de celdas donde se hallan los valores.

     

    Ejercicio 5.

    En el siguiente ejercicio, asignaremos una macro a un botón que incluiremos en la barra de menús o de herramientas de Excel. Trabajaremos con el libro creado en el ejercicio anterior y con la macro Macro3.

    ·        Seguiremos los pasos siguientes:

    1.      Picar en Ver-Barra de Herramientas-Personalizar.

    2.      Seleccionar la etiqueta Comandos, y de la lista que aparece, Macros.

    3.      Escoger Personalizar botón y arrastrarlo hasta la barra de menús.

    4.      En el mismo cuadro de diálogo  Personalizar, escoger Modificar selección-Asignar macro, escogiendo  Macro3.

    ·         Comprobar que al pulsar el botón se produce la ejecución de la macro.

     

    Ejercicio 6.

    Crear una macro en Word de la siguiente forma:

    1.       Poner en funcionamiento la grabadora de macros de Word.

    2.       Llamar a la macro “Macro4”, guardándola en el documento actual.

    3.       Crear un encabezado y un pie de página. (Ver-Encabezado y pie de página).

    4.       Escribir, en el encabezado, la frase “Ejercicio 1. Macro para Word”. Ponerlo a tamaño 10 y en cursiva, con tipo de letra Arial.

    5.       Pasar al pie de página, escribiendo la expresión “ Página nº ” y a continuación, el número de la página. Ponerlo en letra Arial, a tamaño 10 y en cursiva.

    6.       Detener la grabación de la macro.

    ·         Eliminar el encabezado y el pie de página.

    ·         Ejecutar la macro (Herramientas-Macro-Macros) y observar los resultados.

    ·         Observar el código correspondiente a la macro creada (Herramientas-Macro-Macros-Modificar).