N004 コレクションのオブジェクトではありません

製品のオブジェクトがコレクションであるかのように参照されていますが、そうではありません。例えば、製品のクラスが ProdADT で、それがコレクションのクラスでなければ、次のようになります。

Dim varV As Variant
Set varV = New ProdADT("abc")
ForAll X In varV				' Illegal. 
'...  
End ForAll

参照を削除するか、そのターゲットをコレクション名に置き換えてください。