Almost sounds like you are needing answers to a homework assignment, but since I give every one the benefit of the doubt, here are the answers to those questions:
A static variable allows the variable to maintain it's previous value through repeated raises of an event. Meaning that, if you have a variable say "X" and you have a command button. If you add the code snippit to the command button:
x = x + 1
msgbox x
If the variable X is NOT Static, you should always get the same response (which in this case would be one), because every time the event finishes (every time the code in the button is done running) it destroys all the local variables. So, Every time you click the button, the variable gets re-created, as nothing, and then has 1 added to nothing. It doesn't take a math teacher to know that 1 plus nothing is 1. So, it will always be one, because it's always erased when the code is done.
However, Should the variable be "static" then it will keep it's value until the program terminates, or the value is over-written by the programmer. If, in the code above, the variable X where to be static, then it would constantly add 1 to X's previous value. So, the first time you click the button, it would show 1, the second time, 2, and so forth and so on. Basically, static allows the variable to keep it's value …