En C, on fait un CreateWindow avec les attributs, infos adhoc.
Une ruse en VB (pour éviter les pbs de gestions des nouveaux objets, car leurs évènements ne sont pas dans la liste VB...) c'est de créer ces contrôles et de les mettre hidden. Même en couches, empilés. On peut alors montrer celui/ceux qu'on veut, et aussi le placer là où l'on veut, et donc intercepter et gérer avec VB les messages sans se casser la tête.
Il faut les créer en "array" (contrôles de même nom => "tableau" ).
Je parle de VB(3), si c'est VBApplications de Office, je sais pas.