It's a module by module command/setting.
If the module already exists (or you've added something to the
sheet/ThisWorkbook module), then you have to add it manually.
But you can toggle a setting for new modules.
Inside the VBE
Tools|Options|Editor tab|check "Require variable declaration"
And any new modules you create will have that line at the top.
(Yes, any module you write VBA code should have this line in it.)
========
Saved from a previous post:
I do it for a much more selfish reason.
If I add "Option Explicit" to the top of a module (or have the VBE do it for me
via tools|options|Editor tab|check require variable declaration), I know that
most of my typos will stop my code from compiling.
Then I don't have to spend minutes/hours looking at code like this:
ctr1 = ctrl + 1
(One is ctr-one and one is ctr-ell)
trying to find why my counter isn't incrementing.
And if I declare my variables nicely:
Dim wks as worksheet
not
dim wks as object
and not
dim wks as variant
I get to use the VBE's intellisense.
If I use "dim wks as worksheet", then I can type:
wks.
(including the dot)
and the VBE will pop up a list of all the properties and methods that I can
use. It saves time coding (for me anyway).
And one final selfish reason.
If I use a variable like:
Dim ThisIsACounterOfValidResponses as Long
I can type
Thisis
and hit ctrl-space and the VBE will either complete the variable name or give me
a list of things that start with those characters.
And by using a combination of upper and lower case letters in my variables, the
VBE will match the case found in the declaration statement.
ps. From what I've read, if you declare a variable as Integer, the modern pc
will have to spend time converting it to long. So I've stopped using "dim x as
integer". It's safer for me and quicker for the pc.
Same thing with "dim x as single". I'll never use it.
I'll use "dim x as double".