macros - test de seleccion multiple

Upload: daniela-arcila

Post on 15-Oct-2015

308 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    1/11

    GUA

    ES PROBABLE QUE ESTA GUA CAMBIE SEGN LA VERSIN DE EXCEL QUE SE TENGA,PUES ELLA FUE DISEADA CON UNA VERSIN 2003

    Crear un Test de Seleccin Mltipl

    Utilizando las Macros de MS Excel

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    2/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Tabla de contenido

    I. OBJETIVO: ................................................................................................................. 2II. LAPLANTILLA:........................................................................................................ 2

    III. CREANDO LA MACRO.................................................................................................. 2IV. EJECUTANDOLAMACRO. ....................................................................................... 3

    V. CONSTRUYENDOLASOPCIONES. ................................................................................ 3VI. EVALUANDOLASRESPUESTAS ................................................................................. 4VII. CORRECTAOINCORRECTALARESPUESTA? ............................................................ 5VIII. OTRAFORMADEEJECUTARLAMACRO ................................................................... 5IX. PRIMERAVARIANTEDENUESTRAMACRO. ............................................................... 6X. SEGUNDAVARIANTE:EL AYUDANTE DE OFFICE PREGUNTA.................................................. 7XI. TERCERAVARIANTE:MS OPCIONES. ......................................................................... 9

    ltima revisin mayo de 2009

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    3/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Crear un Test de Seleccin MltipleUtilizando las Macros de Ms Excel

    I OBJETIVO:Vamos a disear una PLANTILLA de Excel con frmulas, funciones y macros adecuadas, que sirva para disear

    un Test que permita repasar a los estudiantes utilizando preguntas de seleccin mltiple. Por ejemplo repasar

    sobre capitales de Departamentos de Colombia. La hoja preguntara por la capital de un departamento y dar

    tres opciones. El estudiante deber seleccionar la respuesta correcta. Al terminar cada una de las preguntas, le

    dir cuntos aciertos ha tenido.

    I I LA PLANTILLA:Para comenzar, prepararemos una tabla con cinco (5) columnas: en la primera, escribe los nombres de los

    Departamentos cuyas capitales se desean repasar. En cada una de las tres columnas siguientes escribe el

    nombre de una ciudad, incluyendo aquella que es la capital del Departamento correspondiente a esa fila. Para

    que la plantilla presente cierta aleatoriedad en las respuestas, no se debe escribir siempre la respuesta

    correcta en la misma columna.

    III Creando la MacroVamos a escribir la Macro poco a poco. Pulsa

    1en el Men Herramientas, Macro, Editor de Visual Basic. De

    esta manera se abrir el Editor que se utiliza para escribir Macros. Este programa viene incluido en cada

    aplicacin de Office. Una vez dentro del Editor pulsa en Insertar, Mdulo. Se abrir una ventana donde

    escribirs el siguiente texto.

    Este texto es el Cdigo de la Macro. Son las

    instrucciones de un programa en Visual

    Basic, que representan las distintas acciones

    que la plantilla debe realizar cuando se

    ejecute la macro llamada Prueba, cuando empiece a ser utilizada.

    1En Ms Excel 2007 haz clic en la ficha Programador.

    En la quinta, escribe un nmero

    del 1 al 3 que indica cual es la

    respuesta correcta. Puede

    escribir tantos departamentos

    como quiera. En el ejemplo se ha

    trabajado con seis

    departamentos, pero se puede

    ampliar segn la necesidad.Guarda la hoja de clculo con el

    nombre: crea_un_test

    http://localhost/var/www/apps/conversion/tmp/scratch_4/crea_un_test.xlsmhttp://localhost/var/www/apps/conversion/tmp/scratch_4/crea_un_test.xlsmhttp://localhost/var/www/apps/conversion/tmp/scratch_4/crea_un_test.xlsm
  • 5/26/2018 MACROS - Test de Seleccion Multiple

    4/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Pero que dice este Cdigo? En primer lugar, las macros empiezan con la palabra reservada Sub, seguida del

    nombre elegido para la macro y termina con las palabras reservadas End Sub. Entre estas dos palabras

    reservadas se escriben las instrucciones propiamente dichas.

    En la plantilla tenemos seis departamentos que van desde la fila 2 a la fila 7.- El conjunto de instrucciones que

    comienzan con For y terminan con Next es lo que se denomina un ciclo. Todo lo que hay dentro de l seejecutar tantas veces como se indique. En este caso el ciclo maneja una variable que hemos llamado i,

    dndole los valores 2, 3, 4, 5, 6,7. En cada vuelta del ciclo, para cada valor de i, el nombre del departamento

    se guarda en la variable Departamento. Para localizar el nombre del departamento se usa la instruccin Cells,

    entre cuyos parntesis se indica en su orden la fila y la columna de la celda cuyo valor deseamos usar. As

    Cells( 2,A) corresponde a la celdaA2; Cells (3,A)corresponde a la celda A3 y as sucesivamente.

    Para formular la pregunta se usa la funcin InputBox que sirve para mostrar un cuadro con un mensaje en el

    que escribir la respuesta.

    IV EJECUTANDO LA MACROVamos a probar la macro a ver si esta funciona en Excel. No es necesario cerrar el Editor deVisual. Estando en

    Excel haz clic en Herramientas, Macros, Macro . Aparecer un cuadro como el de abajo a la izquierda.

    Aparecern las demas preguntas. Prueba a ver como vamos!

    V CONSTRUYENDO LAS OPCIONES

    El mensaje que muestra el cuadro es el texto

    que aparece entre los parntesis del InputBox

    En este caso el texto es el resultado de juntar

    con el signo & (Concatenar) dos textos: las

    palabras Cul es la capital de y el nombre de

    departamento tomado de la lista. Deja un

    espacio antes de cerrar las comillas para que e

    nombre del departamento no quede pegado a la

    pregunta. El signo & es el operador de

    Concatenacin. Lo que se escriba como

    respuesta a esta preguntaes el valor que tomar

    la funcin y que, en la macro anterior, es

    guardado en una variable llamadaRespuesta.

    En ese cuadro aparece la lista disponible de Macr

    En este momento la nica disponible es Prue

    Haga clic en Opciones aparecer un cuadro don

    podemos indicar una combinacin de teclas p

    ejecutar la macro. Haz clic sobre Tecla de mto

    abreviado y manteniendo presionada la tecla

    Maysculasdigita la A. Estas dos teclas, junto con la tecla Controlserlas que utilizaremos a partir de ahora para que ejecutemos la Macro. H

    clic sucesivamente enAceptary Cancelar. Ahora ejecuta la macro

    digitando Control+Maysculas+ A. Aparecer un cuadro con la primera

    pregunta del Test. PresionaAceptarcada vez (sin responder).

    Aparecern las demas preguntas. Prueba a ver como vamos!

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    5/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Vamos ahora a que aparezcan las opciones. Recordemos que ellas estn en las columnas B, C, Dde la plantilla.

    Guardaremos en la macro las opciones en variables adecuadas y luego incluirlas en la pregunta. Volvamos al

    Editor de Visual Basic y en el Cdigode la macro, antes de la instruccin InputBoxescribe lo siguiente:

    opcin1 = 1- & Cells (i,B)

    opcin2 = 2- & Cells (i,C)opcin3 = 3- & Cells (i,D)

    opciones = opcin1 & opcin2 & opcin3

    La Instruccin InputBox que formula pregunta, deber cambiarse por la siguiente:

    Respuesta = InputBox (Cual es la capital de & Departamento & chr(10) & opciones)

    Qu significa todo esto? En primer lugar estamos guardando las opciones en tres variables, junto con un

    nmero de orden. Con el signo & se concatena un nmero de orden antes de cada nombre de ciudad.

    Debemos tener especial cuidado con los espacios que hay antes de cada nmero. Recuerda que esos espacios

    evitan que, cuando juntes todas opciones, cada una no quede pegada a la anterior. En la variableopcionesse

    concatenan todas ellas. A su vez, en la funcin InputBox se concatena la pregunta anterior con las opciones.

    Pero adems se incluye una instruccin especial: Chr(10), la cual har que las opciones aparezcan un rengln

    ms abajo que la pregunta. Este carcter tiene la particularidad de crear una nueva lnea .Hagamos una

    prueba ejecuta la macro y observa como aparecen las preguntas sucesivamente con sus respectivas opciones.

    Para evitar que las respuestas aparezcan a la vista, oculta las cinco columnas de la plantilla. Para ello,

    selecciona el rango que abarque las seis preguntas y haz clic enFormato, Columna, Ocultar.

    VI EVALUANDO LAS RESPUESTASLa funcin InputBoxmuestra la pregunta y permite responderla. La respuesta (un nmero del 1 al 3) quedaraalmacenada en la variable Respuesta. La macro deber comparar el valor de esta variable con el de la

    columna Ecorrespondiente de la plantilla, la cual contiene las preguntas correctas. Esto lo obtendremos con

    unas nuevas instrucciones. Volvamos al Editor de Visual Basic y escribamos lo siguiente despus de Respuesta:

    If Val(Respuesta) = Cells(i, E ) Then

    Puntos = Puntos + 1

    End if

    El valor devuelto por InputBoxsiempre tiene formato de texto, de modo que para poder compararlo con un

    valor numrico, el de la columna Ese debe convertir a numrico, esto se logra aplicndole la funcin Val.

    Una vez formuladas todas las preguntas, antes de Next, el programa nos dir cuantas respuestas correctas se

    obtienen, de un total de preguntas realizadas, para ello agregaremos otra instruccin antes de Next

    MsgBox(Puntos & Respuestas Correctasde & i-1 & Preguntas)

    La expresin If ..Then.. ( En ingles Si ..Entonces...) establece una

    condicin. Si el valor de la variable Respuesta coincide con el

    respectivo valor de la columna Eentonces se debe sumar una unidad

    a la variable Puntos. Esta nueva variable funciona como un contador

    de respuestas correctas.

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    6/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpezVII CORRECTA O INCORRECTA LA RESPUESTA?Podemos mejorar la macro haciendo que tras cada respuesta, un cuadro informe si se ha contestado correcta

    o incorrectamente. Para ello escribiremos dos instrucciones MsgBox, una para cada caso:

    If Val(Respuesta)=Cells(i,E) Then

    Puntos=Puntos + 1

    MsgBox(!Correcto!)

    Else

    MsgBox( Incorrecta!)

    End If

    VIII OTRA FORMA DE EJECUTAR LA MACROAdems del mtodo abreviado una macro se puede ejecutar de la siguiente manera: Haz clic en Herramientas,

    Macro, Macros aparecer un cuadro con todas las macros de la plantilla. Para ejecutar alguna de ellas,

    simplemente se hace clic sobre ella en la lista y luego se hace clic en Ejecutar. Observa la figura en la pgina 3.

    Otra forma de ejecutar una macro es a travs de un botninsertado en la hoja de clculo, para ello

    necesitaremos la barra de herramientas: Formularios2.Hagamos clic en Ver, Barra de Herramientas,

    2En Ms Excel 2007 haz clic en la ficha Programador y a continuacin en Insertar.

    Tal como InputBox la instruccin MsgBoxmuestra un texto en la pantalla, el que hayas escrito entre parnte

    Pero a esta instruccin no se le puede dar ninguna respuesta. Solamente haz clic en Aceptarpara cerrar el cuadr

    continuar ejecutando la macro. As la macro est completa: Formula las preguntas, ofrece las opciones y da

    resultado de la prueba, a medida que se responde.

    Si la comparacin que sigue a Ifes verdadera se ejecuta lo que hayamos

    dicho entre If y Else. Si la comparacin es falsa, se ejecutar lo que est

    entre el Else y el End If.Ejecuta la Macro con estas nuevas Instrucciones.

    Y observa como aparece una ventanita con el anuncio Correcto oIncorrecto, segn corresponda.

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    7/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Formularios.El cuarto botn de esta barra (Botn precisamente es su nombre) permite dibujar un botn para

    ejecutar una macro.

    Es probable que este instructivo cambie ligeramente segn la versin de Excel que se tenga.

    IX PRIMERA VARIANTE DE NUESTRA MACROPodemos hacer que Excel detecte el fin de una lista, esto es lo que nos proponemos en este apartado.

    Primero hacemos clic en ese cuarto botn de la barra. E

    puntero del ratn se convertir en una pequea cruz

    Arrastramos el ratn dibujamos un rectngulo del tamao

    deseado. Cuando soltamos el ratn aparecer un cuadroparecido al anterior, donde se te pide elegir una macro que

    se ejecutar con el Botn. Hacemos clic sobre la macro

    Prueba, (en este caso), donde dice Macros en:selecciona e

    nombre de nuestra hoja de clculo (crea_un_test) y

    hacemos clic en Aceptar. Para quitar el nombre del Botn

    que inicialmente aparece como Botn 1 hacemos clic sobre

    l y modificamos el texto, colocando por ejemplo Prueba

    Capitales de Departamentos de Colombia

    Una cuarta manera de ejecutar la macro es asignrsela

    a una imagen elegida por ti. Inserta la Imagen en la

    hoja de clculo y luego haz clic derecho sobre la

    imagen, a continuacin clic en Asignar macro,

    aparecer el cuadro de ahora. Elegimos la macro

    Prueba, en la casilla Macros en:crea_un_test y luego

    Aceptar.De Ahora en adelante cada vez que hagas clic

    sobre la imagen, se ejecutar la macro.

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    8/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    En nuestra Macro tenemos un ciclo For Next que recorre la lista de departamentos, formulando las preguntas.

    El ciclo controla una variable i que toma los valores de 2 a 7 porque la lista ocupa desde la segunda a la

    sptima fila de la hoja de clculo. Si hacemos una lista ms larga o ms corta, tendremos que cambiar el lmite

    del ciclo For Next. Sin embargo podemos hacer que la macro detecte automticamente el fin de la lista.

    Cuando trabajamos con una plantilla de Excel podemos ubicar la ltima fila de una lista de la siguiente

    manera: Ubicamos el cursor en la celdaA1; luego manteniendo presionada la tecla Controlpresiona la flecha

    para bajar. El cursor bajar hasta la ltima celda ocupada de esa columna.

    En una macro podemos simular la combinacin de las teclas Control+ Flecha hacia abajo mediante la

    instruccin End(xlDown) Como nuestro deseo es que se haga desde la celdaA1 la instruccin deber ser:

    Range(A1).End(xlDown). Pero, si adems es de nuestro inters, conocer el nmero de fila (en ingls Row),

    detectaremos la ltima fila de la lista con la instruccin: uf=Range(A1).End(xlDown).Row .

    Incluyamos esta ltima instruccin en el cdigo de la macro antes del comienzo del ciclo For Next y luego

    cambiamos la instruccin For i=1 To 7por la instruccin For i=2 To uf. Esto hace que se cambie el lmite del

    ciclo por la fila detectada automticamente por la macro.

    Agrega los departamentos faltantes en nuestra lista inicial. Observa como la macro hace exactamente el

    nmero de preguntas segn el nmero de departamentos que vayas agregando a medida que la pruebas.

    X SEGUNDA VARIANTE: El ayudante de Office preguntaNuestro propsito en esta segunda variante es hacer que las preguntas de nuestra macro las formule el

    ayudante de Office. Para activar este haz clic enAyuda y luego en Mostrar el Ayudante de Office.3

    LOS GLOBOS DEL AYUDANTE: Para hacer que el ayudante aparezca en la pantalla, con un texto

    determinado, requiere de distintos tipos de instrucciones: Crear un Objetoayudante, definir sus

    caractersticas y mostrarlo. Por ejemplo en la macro que aparece a continuacin:

    Sub Prueba2 () Pregunta.Labels(3).Text=Cells(iD)

    Set pregunta = Assistant.NewBallon pregunta.Button= 0

    For i= 2 to 7 Respuesta=pregunta. Show

    pregunta.Heading=Cul es la capital de & Cells(i, A) Next

    pregunta.Labels(1).Text=Cells(i, B) End Sub

    pregunta.Labels(2).Text=Cells(i, C)

    Entendamos estas instrucciones: En la primera creamos un Ayudante personalizado al que hemos llamado

    pregunta. Este ayudante tiene tres grupos de opciones:

    El ttulo o encabezado (Heading) donde colocaremos la pregunta.Las opciones (Labels), en nuestra macro una para cada opcin de las preguntas.

    3No disponible en Office 2007.

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    9/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Los botones (Button), en nuestro caso, no necesitamos botones. Por eso a este parmetro se le asigna el valor 0.

    Con la instruccin Respuesta=pregunta. Show aparece el globo con la pregunta, y se guarda en la variable Respuesta. Sihacemos clic en la primera opcin, Respuesta toma el valor 1; si hacemos clic en la segunda, Respuesta toma el valor 2, yas sucesivamente. Para hacer funcionar el programa podemos asignarle a la macro una combinacin de letras, como yahicimos en el primer ejemplo. Entonces aparecer el ayudante junto con las opciones para que se marque la que se crea esla correcta.

    Paranuestra nueva macro este ser el conjunto de instrucciones que debes digitar.

    Set correcto = Assistant.NewBalloonSet incorrecto = Assistant.NewBalloon

    correcto. Heading=! Correcto!

    correcto. Button=1

    incorrecto. Heading=! Incorrecto!

    incorrecto. Button=1

    Prueba tu macro!

    Podemos mejorar an

    ms nuestra macro.

    Los cuadros que indican

    si la respuesta fue

    correcta o incorrectapodemos reemplazarlos

    por globos como el de

    la pregunta. Para ello

    debemos crear dos

    nuevos globos. Para ello

    al inicio de la macro

    escribamos:

    Las caractersticas de estos globos es que tienen pencabezamiento (Heading) el mensaje Correcto o Incorrect

    el cual depende de si se ha acertado la respuesta o no, y

    botnAceptar. Esto ltimo es lo que indica el valor 1 para

    objeto Button

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    10/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Si queremos mejorar aun ms la macro Prueba2 , podemos crear un cuarto globo para reemplazar el cuadro que dael resultado de la prueba. Se debe crear al principio de la macro. Al final, antes de la instruccin Next , cuando cadapregunta es formulada, definimos su contenido ( el Heading) como el valor de la variable puntos junto con laspalabras Respuestas Correctas de i-1 Preguntas

    Set resultado =Assistant.NewBalloon

    resultado. Heading=puntos & " Respuestas Correctas de " & i - 1 & " Preguntas"

    resultado. Show

    Ya esta lista nuestra macro para ejecutar una prueba repaso de capitales de Departamentos de Colombia. Si todo va bien elAyudante de Office formular las preguntas, ofrecer las opciones y nos dir cuantas respuestas correctas se han obtenido.Es fcil utilizar esta macro para hacer repasos de otros temas, solo debemos cambiar la plantilla del comienzo. La macrohar el resto.

    XI TERCERA VARIANTE: Ms OpcionesLas opciones de la Prueba no tiene por qu tres: pueden ser ms o menos, por ejemplo cuatro opciones. En este caso

    debemos modificar la plantilla. Por ejemplo: Si las opciones son cuatro la plantilla tendr seis columnas: elDepartamento, las cuatro opciones y el nmero de la opcin correcta. Tendremos tambin que variar la macro para queofrezca las cuatro opciones. Para el caso de la prueba utilizando el Ayudante de Office, el cdigo deber tener encuenta que las opciones ocupan ahora las columnas Ba Eyque el nmero de la opcin correcta est ahora en la columnaF. Por supuesto incorporando mas instrucciones de la formapregunta.Labelsy cambiando la columna de comparacinen If respuesta=Cells(i,F)esta macro se puede ampliar an mas. Sin embargo, los globos solamente admiten cincoopciones. Debemos tener en cuenta esta limitacin a la hora de disear un nuevo cuestionario. El Cdigo utilizando elAsistente de Office ser el siguiente:

    Las siguientes dosinstrucciones reemplazan elMsgBoxde la ltima versin:

    correcto.Show

    incorrecto.Show

  • 5/26/2018 MACROS - Test de Seleccion Multiple

    11/11

    CrearunTestdeSeleccinMltiple|20/09/2007CarlosHa

    roldMuozLpez

    Sub Prueba3()

    Set pregunta=Assistant.NewBalloon

    Set correcto= Assistant.NewBalloon

    Set incorrecto=Assistant.NewBalloon

    Set resultado=Assistant.NewBallon

    correcto.Heading = !Correcto!

    correcto.Button= 1

    incorrecto.Heading= !Incorrecto!

    incorrecto.Button = 1

    uf =Range(A1).End(x1down).Row

    For i =2 To uf

    pregunta.Heading = Cul es la Capital de &Cells( i, A)

    pregunta.Labels(1).Text = Cells(i,B)

    pregunta.Labels(2).Text = Cells(i,C)

    pregunta.Labels(3).Text = Cells(i,D)

    pregunta.Labels(4).Text = Cells(i,E)

    pregunta.Button = 0

    respuesta = pregunta.Show

    If respuesta = Cells(i,F) Then

    puntos = puntos + 1

    correcto.Show

    Else

    incorrecto.Show

    End if

    Next

    resultado.Heading = puntos & respuestas correctas

    resultado.Show

    End Sub