Ouverture/Activation de Documents Word dans une macro VBA

J'espère VB/VBA expert peut m'aider. Considérez les points suivants:
L'utilisateur ouvre un document dans Word 2003, et à l'intérieur de la Normale.dot AutoOpen macro, nous nous tournons à présent document, et s'il a été ouvert en cliquant sur un lien sur une page web, et répond à certaines autres de l'application des critères spécifiques, fermer le flux de "copie" et ouvrir le document source (qui se trouve sur un lecteur partagé, on peut supposer que l'utilisateur a accès à l'):

Documents.Open origDoc
Documents(ActiveDocument.FullName).Close SaveChanges:=wdDoNotSaveChanges
Documents(origDoc).Activate

With ActiveDocument
    ''# Do work
End With

Je pensais que j'avais besoin d'appeler Activate pour s'assurer que le document original a été la ActiveDocument, mais je suis un 4160 'nom de fichier incorrect" erreur sur la .Activate appel. Si j'en commentaire l'appel à .Activate, il semble que ActiveDocument est définie à l'origDoc document, même si il y avait d'autres documents déjà ouverts (je ne suis pas vraiment sûr de savoir comment les Documents de la Collection est gérée, et la façon dont Word détermine ce que la prochaine ActiveDocument serait si vous en programmant fermer le ActiveDocument)

Donc, n'appelant .Open sur un document de définir explicitement le Document à l' ActiveDocument? En outre, le fait d'appeler .Activate sur le document actif causer une erreur?

Je n'ai pas vraiment été en mesure de trouver beaucoup de documentation à ce sujet, donc merci d'avance pour toutes les suggestions et perspicacité!

Je présume que vous avez été manipulés par le flux de la copie du document que le ActiveDocument dans votre code. Il serait beaucoup mieux pour assigner l'objet d'un document à une variable au début de votre code et de l'utilisation de votre variable à travers le reste du code. Comme d'autres l'ont souligné, vous êtes susceptible de clôture de la mauvaise version du document dans la deuxième ligne de code. Aussi, il serait sage de céder le document "original" objet à une variable lorsque vous l'ouvrez.

OriginalL'auteur echoesofspring | 2009-04-01