2017-09-22 1 views
0

J'ai donc fait le contrôle suivant en mode Conception puis ajouté le contrôle à une nouvelle page Custom dans ma boîte à outils.VBA Ajout d'un contrôle défini par l'utilisateur à Userform au Runtime

Maintenant, que dois-je utiliser pour le paramètre progID dans Controls.Add()? Comment puis-je rechercher cette valeur? Controls.Add("Forms.Frame.1") ajoute un cadre régulier, pas le contrôle personnalisé souhaité.

enter image description here

Répondre

0

Pour autant que je sache, vous ne génèrent pas une nouvelle progID avec un contrôle personnalisé. Par la MSDN documentation pour les contrôles modifiés/personnalisés:

Note: Lorsque vous faites glisser un contrôle sur la boîte à outils de contrôle, vous transférez uniquement les valeurs des propriétés avancées.

Ainsi seules les propriétés sont transférées; le contrôle réel est toujours du même type que celui que vous avez créé. De plus, il semble que ce progID soit "a unique system-wide string that the Windows operating system can use to identify your control's type.". Donc, à moins que vous n'ayez à coder votre propre contrôle, il semble que vous ne faites que passer des propriétés aux contrôles de la boîte à outils personnalisée que vous créez là.

Vous devrez simplement répliquer le contrôle personnalisé chaque fois que vous voulez l'ajouter. Il suffit de créer un sous-marin avec toutes les propriétés correctes et appelez-le. Pas ce que vous cherchiez, mais ça va faire le travail.