2009-01-22 6 views
1

J'exécute du code sur l'événement WindowSelectionChange en Microsoft Word. Comment se fait-il que lorsque j'ouvre un autre document, qui n'a pas cette macro référencée, le code est toujours appelé WindowSelectionChange. Je n'ai pas la macro stockée dans le modèle par défaut, elle est stockée dans un modèle non référencé par mes autres documents Word.Comment mes macros sont déclenchées par des événements dans d'autres documents Word

Existe-t-il un moyen de limiter cet événement au document dans lequel se trouve le code VBA? Les événements de macro ne se déclenchent que de manière indésirable si le document dans lequel ils sont censés être ouverts est ouvert en même temps. Le projet est stocké dans mon propre fichier .dot, pas le modèle par défaut.

Est-ce la nature des événements de liaison dans Word? Il affecte tous les documents ouverts. Des idées?

Répondre

2

Je crois que l'événement WindowSelectionChange est appelé au niveau de l'application, n'est-ce pas? Donc, fondamentalement, je pense que la façon de résoudre ce problème est de modifier le code dans WindowSelectionChange afin qu'il ne s'exécute que si ActiveDocument = ThisDocument. ThisDocument est le document dans lequel votre code est stocké, de sorte que vous pouvez faire en sorte que le code s'exécute uniquement lorsque ThisDocument est le document actif dans Word.

0

Est-il possible que vous ayez créé la macro dans le modèle par défaut plutôt que dans le document spécifique?

0

Oui, dans l'éditeur de macro, assurez-vous que votre code est dans le projet pour votre document et celui appelé "Normal".

Questions connexes