You are totally confused :

declaring variable without the type specified will result in Variant type - that is true.
However,
declaring variable as

Dim intNumber%
or
Dim intNumber As Integer

WILL result in both case and INTEGER variable immediately.

Also, if you would look closely at how windows api work then you will find in many many samples that some arguments are passed with ampersand at the end:

Call SomeFunction(arg1&, arg2&)

that is done on purpose to explicitly convert integer to long and therefore

declaring variable as ...
Dim lngNumber&

is perfectly valid and normal way of declaring variables.

The only problem (as I said before) not using "...As SomeType" syntax is that majority of new programmers wouldn't know what that symbol is.
But there are so many things not documented, though ...

And after all what is "standard coding convetion anyway ?..

Best regards.