Upload
daniela-arcila
View
308
Download
0
Tags:
Embed Size (px)
Citation preview
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.xlsm5/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