2009-11-19 5 views
0

Y a-t-il beaucoup de frais généraux impliqués dans les classes VBA? J'ai remarqué que sur un cahier de travail précédent, j'ai effectivement fait la même chose que ce qui est actuellement dans mes cours, mais ça a fonctionné plus vite.Y a-t-il beaucoup de frais généraux impliqués dans les classes VBA?

+2

Votre question est un peu vague. Que comparez-vous à quoi? –

+0

Il est implicite que l'OP compare des Classes à des Modules Standard ... Quoi d'autre à quoi comparer? +1 pour contrer. – Oorang

+0

J'avais auparavant du code qui résidait dans un module qui détectait les "limites" d'un groupe de produits, puis montrait ou masquait ces lignes. J'ai ensuite déplacé ce code dans un module de classe et j'ai remarqué un délai de 0,5 seconde avant la fin de la macro. (pas cohérent, mais dans et autour de cette marque) – JakeTheSnake

Répondre

0

Pour répondre à votre question, il y a un peu de frais généraux avec les cours. A savoir la création et la destruction de ces objets. L'accès aux propriétés peut aussi être un petit peu plus lent. Mais d'une manière générale, ce devrait être un montant assez négligeable. Vous ne devriez vraiment pas voir de différence à moins de mesurer en millisecondes. Un culpabilité plus probable est la façon dont le code est maintenant structuré. Je conseillerais de parcourir le code et d'observer ce qu'il fait réellement. Il est possible qu'il y ait des choses que vous pouvez faire pour optimiser le code.
Pour donner un exemple: Si vous avez une propriété qui effectue une recherche sur une valeur qui n'a pas changé, pensez à avoir le premier accès de cette propriété pour rechercher la valeur et la stocker pour référence ultérieure. Ainsi, tous les appels à cette propriété par la suite n'ont pas à effectuer la recherche. Si vous pensez que les données peuvent changer, pensez à utiliser une méthode d'actualisation ou un paramètre d'actualisation facultatif.
Cet exemple peut ne pas s'appliquer à votre situation spécifique, mais vous avez l'idée. Vous pourriez envisager d'afficher votre code et demander de l'aide pour le rendre plus rapide.

+0

Merci pour l'aide! Il s'avère qu'une seule ligne faisait tout: S. Bon à savoir les classes n'ajoutent pas beaucoup de frais généraux dans tous les cas. – JakeTheSnake

Questions connexes