No, you don't need a Reference "ticked" in your VBA project if you are using late binding.
Often what I'll do is
build my code using early binding so IntelliSense will help me avoid typos and aid my memory re: method/property names, parameters, etc., then
convert my code to late binding once it has been (more or less) finalized
That's why in some of my sample code on here you'll see things like
Dim fso as Object '' FileSystemObject
...
Set fso = CreateObject("Scripting.FileSystemObject") '' New FileSystemObject
The items in the comments (''
) are the original early binding declarations, then I replace them with the Object
and CreateObject()
calls (late binding) but leave the originals as comments in case I want to change them back.
And, as it seems you have discovered, I also have to remember to remove the references in the VBA project, otherwise it can cause problems on a different machine (and avoiding those problems is the whole point of late binding in these cases).