A simple vocabulary tester
A while back I was interested in learning some Korean and Chinese vocabulary and was frustrated with the some of the software that was out there. So I created an Excel spreadsheet that serves me just right. You can download it from here.
Please feel free to change the code, and distribute it. If you do email me the changes.
I know I am not the best coder but this speadsheet is awesome. Fow now it only works
for 200 words but I will fix it sooner or later so that it does not have a limit.
The spreadsheet basically asks you to enter any foreign word and its definition, you press enter and then the it moves over to a list. The spreadsheet also tests you based on what is on the list.
An outline of the first macro is as follow. The following code determines
where on the list to put a new word. So the following code counts how
many words are already on the list and simply puts it on the bottom.
I used the following code for the test
Sub test()
Sheets("test").Cells(6, 4).Font.ColorIndex = 2
' I use the collor white to hide the text
Counter = -1
'If zero rand goes over by 2, at least that is what I wrote
' frankly I forgot why I start it with -1, change this
' and see what happens.
Dim RandNum As Integer
For i = 2 To 200
'I have been lazy, I bet there is a way
'to do the for loop until it finds a blank
If Sheets("list").Cells(i, 3) <> "" Then Counter = Counter + 1
Next
RandNum = Int((Counter - 1 + 2) * Rnd) + 2
'this is an awesome line, I have no idea how it works
'but it gives you a random number
'the problem was with a short list you might
'get asked the same question twice so I put the following code below.
'if the new word on the test equals the last word then it randomizes again.
'//This is only to avoid repeats
If RandNum = Sheets("test").Cells(1, 1) Then RandNum = Int((Counter - 1 + 2) * Rnd) + 2
'-----------------
Sheets("test").Cells(4, 4) = Sheets("list").Cells(RandNum, 2)
Sheets("test").Cells(6, 4) = Sheets("list").Cells(RandNum, 3)
'this just copies the code to the test sheet.
Sheets("test").Cells(1, 1) = RandNum
'this just shows in the corner what random number
'was used.
End Sub