VBA MSFORMS vs Contrôles - quel est la différence
Lors de l'ajout de contrôles à un formulaire utilisateur, quelle est la différence entre la suivante. Je suis confus pour savoir quand il est approprié d'utiliser un en particulier.
Dim aButton1 as MSFORMS.CommandButton
Dim aButton2 as Control.CommandButton
Dim aButton3 as CommandButton
OriginalL'auteur TYale | 2013-03-17
Vous devez vous connecter pour publier un commentaire.
Ajouter UserForm première. Puis dans VBA IDE appuyez sur la touche F2, le objet navigateur s'affiche. Dans le coin supérieur gauche est la zone de liste déroulante, sélectionnez MSForms. Dans la liste de classes, vous pouvez voir les classes qui appartient à MSForms bibliothèque d'objets.
Vous pouvez voir bouton de commande et Contrôle dans cette liste:
Pour déclarer une variable de type bouton de commande dans votre code:
La variable button1 est de type bouton de commande de MSForms pour vous. Le bouton2 pourrait être votre propre classe définie dans votre Projet VBA ... mais si votre projet VBA ne contiennent pas de classe avec un tel nom, il sera considéré à partir de MSForms. Cependant si vous faites référence à un autre objet de la bibliothèque dire "MSFoo" qui contiendra la classe bouton de commande ainsi vous devrez les déclarer pleinement qualifié comme ceci:
Pour déclarer une variable de type Contrôle dans votre code:
Utiliser une variable de type Contrôle, comme une sorte de classe de base pour les contrôles. E. g. pour enumarate collection de Contrôles:
Ou en tant que paramètre dans la fonction qui attend et pas seulement un seul type de contrôle:
Donc, en utilisant des noms pleinement qualifiés comme MSForms.Bouton de commande est en général approprite je pense. L'Utilisation De La Commande.Bouton de commande est erronée et ne compile pas jusqu'à ce que vous faites référence à un objet de la bibliothèque nommée "Contrôle" avec la classe bouton de commande.
EDIT:
Ici un exemple de créés localement classe avec le même nom comme MSForm.Bouton de commande:
Et comment TypeName et TypeOf de travail dans ce cas:
OriginalL'auteur dee
Numéros 1 et 3 de créer le même type de contrôle. La première déclaration est juste pleinement qualifié - équivalent à l'utilisation de Dim ws en tant que Feuille de calcul ou Dim ws as Excel.Feuille de calcul.
Je ne suis pas familier avec le 2ème type de Contrôle".Bouton de commande" - et il ne se compile pas, pour moi, à l'intérieur d'un objet userform Excel 2010.
OriginalL'auteur Doug Glancy