Après avoir lu sur UserForm meilleures pratiques en VBA (crédit Tasse Mat) dans le site maintenant discontinué de documentation SO (affichage de nouveaux liens vers SO La documentation est non autorisé) J'ai pensé que ce serait une bonne idée de définir Attribute VB_PredeclaredId = False
pour les userforms dans mon projet. Je pensais que cela fournirait un moyen pratique d'appliquer le concept d'utilisation d'une nouvelle instance de la forme d'utilisateur à chaque fois au lieu d'utiliser l'instance par défaut.Est-il possible de changer l'attribut VB_PredeclaredId False pour l'utilisateur VBA Forms
Pour un module de classe, il est possible de définir l'attribut VB_PredeclaredID sur True, je pensais pouvoir faire le contraire: exporter le userform, changer l'attribut en False, puis importer la version modifiée.
Tristement chaque fois que j'importe le formulaire utilisateur modifié, l'attribut revient automatiquement (et de manière agaçante) à True.
VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} UserForm1
Caption = "UserForm1"
ClientHeight = 3165
ClientLeft = 45
ClientTop = 390
ClientWidth = 4710
OleObjectBlob = "UserForm1.frx":0000
StartUpPosition = 1 'CenterOwner
End
Attribute VB_Name = "UserForm1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False ' <<<<< Keeps changing back to True
Attribute VB_Exposed = False
Ainsi, la question:
Y at-il un cadre ou une autre chose que je peux faire pour forcer l'attribut VB_PredeclaredId d'un userform rester Faux?
[Edit: J'utilise MS Word, espère que la réponse est également applicable à Excel]
Non, pas que je sache. Vous devrez juste être diligent. ;) – Rory
Pour ce que ça vaut, je l'ai essayé dans Excel (2016) et il s'est comporté de la même façon: Réinitialiser à l'importation. – ainwood
@Rory J'avoue que je m'attends à ce qu'il y ait un moyen, encore un peu surpris que l'attribut est réinitialisé: -/ – SlowLearner