The global Valid Grade Entry variable guarantees that all the validating checks have been passed. New features (like a "Start Over" button or a button to delete List Box entries, for example) could be added easily without disturbing any of the existing logic. Click If Valid Grade Entry = True Then Grade Output.
This is helpful when a series of exceptions are involved.
Each new exception can preserve the information about the previous one by storing it in this property.
But if, for some reason, you have to use the Input Box, here's a followup article that explains how to solve one main problem.
I haven't actually tried to write a loop like this since VB.
The Common Language Runtime (CLR) represents all errors as exceptions. The Framework class library (FCL) includes a large number of standard exception classes that encapsulate information about common errors.