Deftype statements come from older versions of BASIC. I remember, at least in QBasic, variables were a floating point by default, and you could use a suffix if you wanted another variable. (Thus, X itself would be a number, and you would use X $ instead of String.) If someone were doing math with integers (as was often done), one could use DefInt AZ to declare that "type will be an Integer, not a floating point, so you don’t need to suffix all your variables with % to indicate an integer. Or maybe you would specify one section of the initial letters for integers, and the rest for floating point , which may be useful, especially if you have ported code from FORTRAN or other older languages ​​that e used such agreements different starting letters with different types.
Many Visual Basic was designed to take advantage of the ability to use code snippets from previous versions of BASIC with minimal changes, such as line numbers or using "Let" to assign a variable. I am not a historian, but I think that the “Hungarian systems” came later, especially when people are used to using more letters or two for their variable names, because computers are powerful enough to handle such things. Therefore, I do not agree with your premise, since I think that Deftype is only in BASIC because previous versions had this, and not because it was designed to help provide a specific coding style.
And I suppose that DefVar in particular was added only because they added Variant as a type, and it seemed that Variant should be handled like the other types that they had, although I am wondering if it is possible for a programmer to implement it in the same language that it was as useless as it is now.
Obviously, there is no need for any Deftype, or especially DefVar, for everything that was created at the time when VB6 was "new", and, of course, not for something new.
To answer your real question, the only thing I can really think of is that it would help make it explicit that you intentionally used default unused and implicitly typed variables should be considered options. Perhaps in some modules of your application you used DefInt AZ , and in other modules you used DefVar AZ as the coding standard to ensure that all default values ​​are explicit and can be easily understood. This is a little stretched, but of course I heard about more complex coding standards.
And if nothing else, if you used some kind of external tool to ensure that each file DefVar AZ with Option Explicit and DefVar AZ and possibly with some other standards (like Option Base ), you don’t have to worry about developers introducing others Deftype teams and having their colleagues want their keyboard to work.