Thread moved from Database forum to VB6 forum

One thing that seems likely to cause it is that you declare zipObject as IShellDispatch5, but use CreateObject("Shell.Application") to assign it.

Presumably that involves some kind of type conversion, which is presumably only possible with the Reference and data type (otherwise VB wont even know that conversion is needed).