An EXE is a stand-alone application, typically started from a Windows icon
though not necessarily. It might, for example, start a new Excel instance,
process a whole bunch of data obtained from elsewhere, dump the results into
a new workbook, save & goodbye. It may or may not have a Form as a user
interface. Whilst it could interact with VBA in a workbook I kind of doubt
that's what you want to do.
A VB(6) ActiveX DLL is activated via a Public (entry) class, two types -
MultiUse: This can be instanciated from VBA with 'New' (early binding with a
reference to the dll in Tools > references) or with createObject (early or
late binding). Once the entry class is running the VB & VBA can act as a
single application shaking hands between the entry class.
GlobalMultiUse: you can call its public methods & properties directly
without doing as described above.
A VB Com-addin is also an ActiveX dll which has a special class. Typically
this is instanciated when Excel starts (according to settings). It has a
built in method to trap the click event of an Excel commandbar button and go
from there, it doesn't require any VBA.
If you want the VB to be controlled from your VBA the choice is clearly the
DLL (vs EXE).
I take it you didn't see the response I left to your earlier post.
Regards,
Peter T