J'ai examiné la bibliothèque d'objets Microsoft Forms 2.0 (FM20.DLL) et les contrôles communs Microsoft Windows (comctl32.dll), car tous deux existent (je pense) en tant que fournisseurs OLE sur mon système. (Je le fais en les ouvrant dans VBA dans Excel pour regarder les bibliothèques avec leurs membres) et en jouant avec eux dans VBA.Comment puis-je construire et interagir avec une boîte de dialogue dynamique (ActiveX) utilisant OLE sous Windows?
Mon plus gros problème est que je ne comprends pas la relation entre les bibliothèques elles-mêmes et ActiveX - comment puis-je savoir quels membres peuvent être créés en tant qu'objets ActiveX? (Par exemple, vous pouvez créer "Excel.Application", mais pas "MSForms.UserForm"). Je veux être en mesure de scripter (en utilisant OLE) un formulaire en utilisant une bibliothèque, l'afficher, répondre à des événements, etc. Je préférerais utiliser quelque chose qui est déjà disponible (comme les bibliothèques mentionnées ci-dessus, si possible) pour éviter d'avoir à installer un logiciel supplémentaire.
Si vous pouvez donner un exemple (dans n'importe quelle langue) pour me lancer, ce serait très utile et très apprécié.
Les contrôles ActiveX sont ceux qui apparaissent dans la boîte à outils du concepteur visuel. Oui, Forms 2.0 en a un et il est intégré dans Excel et vous permet de faire tout ce que vous voulez faire. On dirait que vous ne l'avez pas encore trouvé. –
@HansPassant Merci, basé sur votre commentaire et un outil appelé ActiveXHelper, j'ai réussi à trouver par exemple. "Forms.Frame.1" en tant qu'objet ActiveX que je peux créer. Comment est-ce que je saurais, cependant, que c'est le nom de l'objet, par opposition à "MSForms.Frame" ou quelque chose d'autre? Je suppose que vous avez besoin d'accéder au registre ActiveX pour vous dire ces choses? – mydoghasworms