If your application uses objects from external components, either third-party or your own libraries, a good rule of thumb is to include the complete servername.classname string in the Dim statement, as in:
Dim word As Word.Application
This syntax ensures that if you then move the code to another application, it will continue to work as before. In fact, if you omit the servername portion, as in:
Dim word As Application
the “word” variable might be pointing to the Application object exposed by another library, for example Excel’s. This occurs when the References dialog lists more than a single library that exposes the Application object. The Visual Basic IDE solves the ambiguity by always binding the variable to the library that appears closer to the top of the list.
A partial solution to the problem is therefore rearranging library names in the list, so that the one you’re interested in comes first, but this isn’t always possible. A much better, and definitive solution, is to always use the complete syntax in all object variable declarations, as explained above.