Je commencerais par DocumentOpen et NewDocument. Un niveau de complexité supplémentaire existe si vous devez prendre en charge les documents ProtectedView; Word déclenche un événement différent. J'ai trouvé que si j'essaye de vérifier pour cet événement (et il ne se produit pas) cela soulève une erreur. Je n'ai pas eu beaucoup de chance et finalement ça ne valait pas le temps que je dépensais. J'ai posté un exemple ci-dessous d'un code qui ouvre le volet de style lorsqu'un document est ouvert ou un nouveau créé (en supposant que le complément est en cours de chargement) et étend la marge de style en mode brouillon s'il n'est pas déjà développé.
Dans mon module d'interface utilisateur:
Dim X As New clsAppEvent 'This is in the declarations
Public Sub OnRibbonLoad(objRibbon As IRibbonUI)
Do While Documents.Count = 0
DoEvents
Loop ' I find this useful as sometimes it seems my ribbon loads before the document.
Call Register_Event_Handler
' Other stuff
End Sub
Private Sub Register_Event_Handler()
Set X.App = Word.Application
End Sub
Ensuite, dans un module de classe I appelle clsAppEvent:
Option Explicit
Public WithEvents App As Word.Application
Private Sub App_DocumentOpen(ByVal Doc As Document)
App.TaskPanes(wdTaskPaneFormatting).visible = True
End Sub
Private Sub App_NewDocument(ByVal Doc As Document)
App.TaskPanes(wdTaskPaneFormatting).visible = True
End Sub
Private Sub App_WindowActivate(ByVal Doc As Document, ByVal Wn As Window)
If Wn.StyleAreaWidth <= 0 Then
Wn.StyleAreaWidth = 60
End If
End Sub
autres que les mises en garde que je l'ai mentionné plus haut, le seul problème que j'ai eu est si un utilisateur a le code automatique dans son modèle normal aussi bien. Cela n'est apparu qu'une seule fois, donc je ne l'ai pas étudié.
Je voudrais pouvoir trouver le site où j'ai appris à ce sujet (et dont la Register_Event_Handler a été obtenu Si je trouve que je vais ajouter un commentaire
Voir [ici] (http:.. // mot. mvps.org/faqs/macrosvba/documentevents.htm) - votre question ne dit pas quand/comment vous essayez ces événements, mais il semble qu'ils ne peuvent pas être stockés dans un Addin – enderland
Vous pouvez le faire en utilisant des gestionnaires d'événements. un exemple dans Excel: http://msdn.microsoft.com/en-us/library/office/hh211482(v=office.14).aspx.Méfiez-vous, cependant, Word n'est pas génial pour déclencher des événements de manière cohérente.Si vous doublez -Cliquez sur un fichier plutôt que de l'ouvrir à partir de Word, par exemple, certains événements Application ne se déclenchent pas, ce qui est correct pour moi (les actions que je veux déclencher ne sont pas indispensables) mais si vous avez besoin d'une garantie que les événements vont tirer cela ne vous aidera peut-être pas. Voici une liste des événements de l'application: http://msdn.microsoft.com/en-us/library/office/ff841714(v=office.14).aspx – Christina
Merci pour les commentaires. Alors pouvez-vous m'aider avec quel événement se déclenchera lorsque je lancerai Word, ce qui me permettra de modifier une propriété sur ActiveWindow? – Mark