Declaring a variable is the first step to achieve an efficient and error-free code. To use an incorrect type of variable involves consuming more memory and processing time than the necessary.
Variables can be declared in two ways: Implicitly and Explicitly. Unless Option Explicit, is indicated all the variables of the module are implicit, that is, they do not have a defined scope (private, public, static) and they are of the Variant type, (they are not associated to an specific type: numeric, text, date, etc.)
Using implicit variables may lead to run time errors: suppose that in a part of the process variable XYZ = "123" is declared and then in other part of the same process a reference is erroneously made to the same variable like XZY = "456". This will create a new variable rather than changing its value without any warning and as a result, an execution error occurs.
In addition, the "Variant" type require more space in the memory. For example, to store an integer in a Variant type 128 bits are needed while storing the same value in an integer will only need 16 bits. However, there are occasions in which this type of variables should be used: the most common example is to assign a null value to a variable, only “Variant” types accept null values.
Practically the only advantage of using implicit variables is that it allows the elimination of a few code lines.
In short, the variables must be explicitly declared. Perhaps the only valid scenario for the implicit variables is during the development stage while designing a process.