Il faut utiliser des objets externes.
Des gratuits, j'en ai pas trouvé.
Pour les sites que ma société fait, on utiliser DynaZip.
Sinon, il doit y avoir moyen de créer un OCX en VB, qui lance un shell avec PKZIP en ligne de commande, mais c'est assez lourd, par contre c'est gratuit.
Si c'est pour mettre chez un hébergeur, oublie, les hébergeurs n'installent généralement que des DLL signées, donc tu es obligé de passer par un objet externe comme DynaZip