Como formador, habría dirigido varios seminarios a sus alumnos. Ahora es el momento de que comparta un libro de trabajo de Excel con sus alumnos que le ayudará a identificar cuánto han entendido. Prepare una hoja de examen digital de opción múltiple siguiendo este artículo.
Descargar Ahora
Si desea comenzar a utilizar el software lo antes posible, puede:
De lo contrario, si desea hacer bricolaje, puede leer el contenido a continuación.
Preparemos la GUI
Contenido
Preparemos la base de datos
Agregue preguntas, opciones y la respuesta correcta en la hoja "Base de datos"
Hagámoslo funcional
Copie este script en un nuevo módulo en su libro de trabajo habilitado para macros.
Sub Prepare_Test()
Dim lr As Long
Dim r As Long
Dim rinq As Long
rinq = 0
lr = Sheets("Database").Range("A" & Rows.Count).End(xlUp).Row
For r = 3 To lr
rinq = rinq + 6
Sheets("Test").Range("C" & rinq).Value = Sheets("Database").Range("A" & r).Value
Sheets("Test").Range("C" & rinq + 1).Value = Sheets("Database").Range("B" & r).Value
Sheets("Test").Range("C" & rinq + 2).Value = Sheets("Database").Range("C" & r).Value
Sheets("Test").Range("C" & rinq + 3).Value = Sheets("Database").Range("D" & r).Value
Sheets("Test").Range("C" & rinq + 4).Value = Sheets("Database").Range("E" & r).Value
Next r
End Sub
Sub Show_Result()
Dim lr As Long
Dim r As Long
Dim rinq As Long
rinq = 0
Sheets("Database").Visible = -1
Sheets("Summary").Visible = -1
lr = Sheets("Database").Range("A" & Rows.Count).End(xlUp).Row
Dim v_ccount As Long
v_ccount = 0
For r = 3 To lr
Dim v_answer As String
v_answer = "Option " & Sheets("Database").Range("F" & r).Value
rinq = rinq + 6
If Sheets("Test").Range("C" & rinq + 1).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 1).Value = v_answer Then
v_ccount = v_ccount + 1
End If
If Sheets("Test").Range("C" & rinq + 2).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 2).Value = v_answer Then
v_ccount = v_ccount + 1
End If
If Sheets("Test").Range("C" & rinq + 3).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 3).Value = v_answer Then
v_ccount = v_ccount + 1
End If
If Sheets("Test").Range("C" & rinq + 4).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 4).Value = v_answer Then
v_ccount = v_ccount + 1
End If
Next r
Sheets("Summary").Range("C7").Value = Sheets("Test").Range("F3").Value
Sheets("Summary").Range("C11").Value = lr - 2
Sheets("Summary").Range("F11").Value = v_ccount
Sheets("Summary").Range("I11").Value = (lr - 2) - v_ccount
End Sub
Copie este script en la ventana de código de la hoja "Prueba"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ar As Long
ar = Target.Row
Range("C" & ar & ":F" & ar).Interior.Color = vbYellow
End Sub
Copie este script en la ventana de código de "ThisWorkook"
Private Sub Workbook_Open()
Call Module1.Prepare_Test
Sheets("Database").Visible = 2
Sheets("Summary").Visible = 2
End Sub
¿Cómo funciona?
Cuando un usuario abre el libro de trabajo, la macro se ejecutará para ocultar las hojas "Base de datos" y "Resumen". Si la hoja "Base de datos" no se oculta al usuario, se exponen todas las respuestas. Tampoco es necesario que un estudiante vea la hoja de “Resumen”. Antes de enviar el libro a los usuarios, se debe ejecutar la macro "Prepare_Test" que llenará la hoja "Prueba". Los usuarios pueden seleccionar cualquier opción y la macro resaltará la respuesta seleccionada en amarillo. La macro "Show_Result" comparará las opciones seleccionadas en la hoja "Prueba" con las respuestas en la hoja "Base de datos" e identifica el recuento de respuestas correctas.
¿Las sábanas no están ocultas?
El script de VBA no puede alertar a las propiedades de una hoja de cálculo de Excel dañada. En cuyo caso, recuperar Excel hoja de trabajo y vuelva a ejecutar la macro.
Introducción del autor:
Nick Vipond es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo palabra dañada y productos de software de recuperación de Outlook. Para más información visite www.datanumen.com

