I made this code out of bordem but became really into it. It's a test that asks you questions and marks your score in a text document. The problem is, when ever I don't have WScript.Quit, it loops forever. Recently I added a few lines of code that saves the score in a text document but for some reason the WScript.Quit is showing an error! Can anyone help? Maybe tell me how to fix the loop or how to fix WScript.Quit? Here is all my code so far.
Code:
Dim counter, x
Call start
Sub start()
counter = 20
a = InputBox("''hackers who pentrate computer databases'' (A)stint (B)abut (C)infiltrate (D)nullify", "1.", "Answer", 6000, 6000)
If a = "C" Or a = "c" Then
Call markzero("2.")
End If
If a = "A" Or a = "a" Or a = "B" Or a = "b" Or a = "D" Or a = "d" Then
counter = counter - 1
Call markzero("2.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call start
End If
End Sub
Sub markzero(x)
C = InputBox("''an ardent advocate for the poor'' (A)fervent (B)divergent (C)stoical (D)gaunt", x, "Answer", 6000, 6000)
If C = "A" Or C = "a" Then
Call markzeroa("3.")
End If
If C = "D" Or C = "d" Or C = "B" Or C = "b" Or C = "C" Or C = "c" Then
counter = counter - 1
Call markzeroa("3.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzero("2.")
End If
End Sub
Sub markzeroa(x)
d = InputBox("''selected to act as my representative'' (A)scavenger (B)enmity (C)proxy (D)crony", x, "Answer", 6000, 6000)
If d = "C" Or d = "c" Then
Call markzerob("4.")
End If
If d = "D" Or d = "d" Or d = "B" Or d = "b" Or d = "a" Or d = "A" Then
counter = counter - 1
Call markzerob("4.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroa("3.")
End If
End Sub
Sub markzerob(x)
e = InputBox("''a lack of respect that galls'' (A)unflaggs (B)nullifies (C)attires (D)rankle", x, "Answer", 6000, 6000)
If e = "D" Or e = "d" Then
Call markzeroc("5.")
End If
If e = "A" Or e = "a" Or e = "B" Or e = "b" Or e = "C" Or e = "c" Then
counter = counter - 1
Call markzeroc("5.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerob("4.")
End If
End Sub
Sub markzeroc(x)
f = InputBox("''packed clothes suitable for all kinds of weather'' (A)cronies (B)attires (C)proxies (D)enmities", x, "Answer", 6000, 6000)
If f = "B" Or f = "b" Then
Call markzerod("6.")
End If
If f = "A" Or f = "a" Or f = "C" Or f = "c" Or f = "D" Or f = "d" Then
counter = counter - 1
Call markzerod("6.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroc("5.")
End If
End Sub
Sub markzerod(x)
g = InputBox("''plan to visit an old pal'' (A)crony (B)scavenger (C)enmity (D)stint", x, "Answer", 6000, 6000)
If g = "A" Or g = "a" Then
Call markzeroe("7.")
End If
If g = "B" Or g = "b" Or g = "C" Or g = "c" Or g = "D" Or g = "d" Then
counter = counter - 1
Call markzeroe("7.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerod("6.")
End If
End Sub
Sub markzeroe(x)
h = InputBox("''lingering antagonism despite the settlement'' (A)stint (B)plummet (C)avail (D)enmity", x, "Answer", 6000, 6000)
If h = "D" Or h = "d" Then
Call markzerof("8.")
End If
If h = "A" Or h = "a" Or h = "B" Or h = "b" Or h = "C" Or h = "c" Then
counter = counter - 1
Call markzerof("8.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroe("7.")
End If
End Sub
Sub markzerof(x)
i = InputBox("''forced to economize even in necessities'' (A)stint (B)infiltrate (C)nullify (D)proclaim", x, "Answer", 6000, 6000)
If i = "A" Or h = "a" Then
Call markzerog("9.")
End If
If i = "B" Or i = "b" Or i = "C" Or i = "c" Or i = "D" Or i = "d" Then
counter = counter - 1
Call markzerog("9.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerof("8.")
End If
End Sub
Sub markzerog(x)
j = InputBox("''announced my intention to run for office'' (A)plummet (B)avail (C)proclaim (D)attire", x, "Answer", 6000, 6000)
If j = "C" Or j = "c" Then
Call markzeroh("10.")
End If
If j = "A" Or j = "a" Or j = "B" Or j = "b" Or j = "D" Or j = "d" Then
counter = counter - 1
Call markzeroh("10.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerog("9.")
End If
End Sub
Sub markzeroh(x)
k = InputBox("''remedies that are of no benefit'' (A)attire (B)rankle (C)avail (D)unflagging", x, "Answer", 6000, 6000)
If k = "C" Or k = "c" Then
Call markzeroi("11.")
End If
If k = "A" Or k = "a" Or k = "B" Or k = "b" Or k = "D" Or k = "d" Then
counter = counter - 1
Call markzeroi("11.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroh("10.")
End If
End Sub
Sub markzeroi(x)
l = InputBox("''a barely discernible defect in the workmanship'' (A)perceptible (B)fervent (C)stoical (D)cryptic", x, "Answer", 6000, 6000)
If l = "A" Or l = "a" Then
Call markzeroj("12.")
End If
If l = "B" Or l = "b" Or l = "C" Or l = "c" Or l = "D" Or l = "d" Then
counter = counter - 1
Call markzeroj("12.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroi("11.")
End If
End Sub
Sub markzeroj(x)
m = InputBox("''as scrawny as a skeleton'' (A)stoical (B)divergent (C)gaunt (D)perceptible", x, "Answer", 6000, 6000)
If m = "C" Or m = "c" Then
Call markzerok("13.")
End If
If m = "A" Or m = "a" Or m = "B" Or m = "b" Or m = "D" Or m = "d" Then
counter = counter - 1
Call markzerok("13.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroj("12.")
End If
End Sub
Sub markzerok(x)
n = InputBox("''left out for rummagers to sift through'' (A)plummeters (B)scavengers (C)proxies (D)enmities", x, "Answer", 6000, 6000)
If n = "B" Or n = "b" Then
Call markzerol("14.")
End If
If n = "A" Or n = "a" Or n = "C" Or n = "c" Or n = "D" Or n = "d" Then
counter = counter - 1
Call markzerol("14.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerok("13.")
End If
End Sub
Sub markzerol(x)
o = InputBox("''tolerant of differing opinions'' (A)cryptic (B)stoical (C)divergent (D)fervent", x, "Answer", 6000, 6000)
If o = "C" Or o = "c" Then
Call markzerom("15.")
End If
If o = "A" Or o = "a" Or o = "B" Or o = "b" Or o = "D" Or o = "d" Then
counter = counter - 1
Call markzerom("15.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerol("14.")
End If
End Sub
Sub markzerom(x)
p = InputBox("''the place where the borders of four states join'' (A)abut (B)attire (C)proclaim (D)stint", x, "Answer", 6000, 6000)
If p = "A" Or p = "a" Then
Call markzeron("16.")
End If
If p = "B" Or p = "b" Or p = "C" Or p = "c" Or p = "D" Or p = "d" Then
counter = counter - 1
Call markzeron("16.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerom("15.")
End If
End Sub
Sub markzeron(x)
q = InputBox("''diminishing enthusiasm for the task at hand'' (A)unflagging (B)stinting (C)nullifying (D)availing", x, "Answer", 6000, 6000)
If q = "A" Or q = "a" Then
Call markzeroo("17.")
End If
If q = "B" Or q = "b" Or q = "C" Or q = "c" Or q = "D" Or q = "d" Then
counter = counter - 1
Call markzeroo("17.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeron("16.")
End If
End Sub
Sub markzeroo(x)
r = InputBox("''left unambiguous instructions'' (A)divergent (B)stoical (C)perceptible (D)cryptic", x, "Answer", 6000, 6000)
If r = "D" Or r = "d" Then
Call markzerop("18.")
End If
If r = "A" Or r = "a" Or r = "B" Or r = "b" Or r = "C" Or r = "c" Then
counter = counter - 1
Call markzerop("18.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroo("17.")
End If
End Sub
Sub markzerop(x)
s = InputBox("''a person of excitable temperament'' (A)stoical (B)fervent (C)gaunt (D)cryptic", x, "Answer", 6000, 6000)
If s = "A" Or s = "a" Then
Call markzeroq("19.")
End If
If s = "B" Or s = "b" Or s = "C" Or s = "c" Or s = "D" Or s = "d" Then
counter = counter - 1
Call markzeroq("19.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzerop("18.")
End If
End Sub
Sub markzeroq(x)
t = InputBox("''watched the candidate's approval ratings soar'' (A)rankle (B)enmity (C)plummet (D)avail", x, "Answer", 6000, 6000)
If t = "C" Or t = "c" Then
Call markzeror("20.")
End If
If t = "A" Or t = "a" Or t = "B" Or t = "b" Or t = "D" Or t = "d" Then
counter = counter - 1
Call markzeror("20.")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeroq("19.")
End If
End Sub
Sub markzeror(x)
u = InputBox("''ratify the agreement'' (A)nullify (B)rankle (C)stint (D)unflagging", x, "Answer", 6000, 6000)
If u = "A" Or u = "a" Then
Call finalscore("Good job Watson!")
End If
If u = "B" Or u = "b" Or u = "C" Or u = "c" Or u = "D" Or u = "d" Then
counter = counter - 1
Call finalscore("Good job Watson!")
Else
MsgBox "Please enter a valid letter.", 0, "Error"
Call markzeror("20.")
End If
End Sub
Sub finalscore(x)
Dim score
score = counter / 20 * 100
v = MsgBox("You have compleated the assesment. Your score is " & counter & "/20 or " & score & "%", 0, x & "")
If v = vbOK Then
Call savescore("Saving score...")
End If
If v = vbCancel Then
Call savescore("Saving score...")
End If
End Sub
Sub savescore(x)
b = InputBox("Please enter your name below.", x, "Name", 6000, 6000)
Dim score
score = counter / 20 * 100
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Users\Michael\test.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close
strFirstLine = "" & b & ": " & score & "% "
strNewContents = strFirstLine & vbCrLf & strContents
Set objFile = objFSO.OpenTextFile("C:\Users\Michael\test.txt", ForWriting)
objFile.WriteLine strNewContents
objFile.Close
WScript.Quit
End Sub