How to call a Visual Basic .NET or Visual Basic 2005 assembly from Visual Basic 6.0 gives the basic outline, and I believe it is similar using later VS versions as well.

As you can see you have some GACcing and strong naming to do to use such a thing from scripts and VBA. You can bypass some of this if you only use the assembly from a single VB6 application, which allows the use of private assemblies.

I have no clue how you deploy such a thing, though I'm sure it isn't all that complicated. It just isn't obvious to me. Somebody who has done it recently could shed a lot more light on the subject.