Hoe u een meerkeuzevragenblad maakt in Excel

Als trainer zou u verschillende seminars voor uw studenten hebben gegeven. Nu is het tijd dat u een Excel-werkmap met uw studenten deelt, zodat u kunt zien hoeveel ze hebben begrepen. Bereid een digitaal meerkeuzetentamenblad voor door dit artikel te volgen.

Nu downloaden

Als u de software zo snel mogelijk wilt gaan gebruiken, kunt u het volgende doen:

Download de software nu

Anders, als je zelf wilt klussen, kun je de onderstaande inhoud lezen.

Laten we de GUI voorbereiden

BeschrijvingBereid de bladtest voor

Bereid het bladoverzicht voor

Bereid de bladdatabase voor

Laten we de database voorbereiden

Voeg vragen, opties en het juiste antwoord toe op het blad "Database"

Laten we het functioneel maken

Kopieer dit script naar een nieuwe module in uw werkmap met ingeschakelde macro's.

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

Kopieer dit script naar het codevenster van het blad "Test"

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

Kopieer dit script naar het codevenster van "ThisWorkook"

Private Sub Workbook_Open()
    Call Module1.Prepare_Test
    Sheets("Database").Visible = 2
    Sheets("Summary").Visible = 2
End Sub

Hoe werkt het?

Wanneer een gebruiker de werkmap opent, wordt de macro uitgevoerd om de bladen "Database" en "Samenvatting" te verbergen. Als het blad "Database" niet verborgen is voor de gebruiker, worden alle antwoorden weergegeven. Het is ook niet nodig voor een student om het blad "Samenvatting" te zien. Voordat de werkmap naar gebruikers wordt verzonden, moet de macro "Prepare_Test" worden uitgevoerd die het blad "Test" zal vullen. Gebruikers kunnen elke optie selecteren en de macro zal het geselecteerde antwoord geel markeren. De macro "Show_Result" zal de geselecteerde opties op het blad "Test" vergelijken met de antwoorden op het blad "Database" en identificeert het aantal juiste antwoorden.

Zijn Sheets niet verborgen?

VBA-script kan eigenschappen van een beschadigd Excel-werkblad niet waarschuwen. In zo'n geval, Excel herstellen werkblad en voer de macro opnieuw uit.

Auteur Introductie:

Nick Vipond is een data recovery-expert in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder beschadigd Word en Outlook-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.