Je dois exécuter des modifications sur les e-mails que je redirige ou réponds dans Outlook 2016. Pour ce faire, j'ai le code suivant; ce code exécute la modification (remplacer une valeur regex avec vide) dans la fenêtre InlineResponse:L'utilisation de VBA dans Outlook pour InlineResponse rompt le comportement standard. Pourquoi?
Dim myOlApp As New Outlook.Application
Public WithEvents myOlExplorer As Outlook.Explorer
Public Sub Initialize_handler()
Set myOlExplorer = myOlApp.ActiveExplorer
End Sub
Private Sub myOlExplorer_InlineResponse(ByVal Item As Object)
' first replace using the word editor
Dim oDoc As Word.Document
Dim wdSelection As Word.Selection
Set oDoc = Item.GetInspector.WordEditor
Set wdSelection = oDoc.Application.Selection
wdSelection.Find.ClearFormatting
wdSelection.Find.replacement.ClearFormatting
With wdSelection.Find
.Text = "SPECIFIC TEXT WITH A VARIABLE LENGTH OF SPACES OF DIFFERENT KINDS AFTER THAT I NEED TO INCLUDE [!a-zA-Z0-9]*([a-zA-Z0-9])" ' my regex goes in here the a-zA-Z0-9 part is to work around the non-greedy regex.
.replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
wdSelection.Find.Execute Replace:=wdReplaceAll
End Sub
Cependant, quand je lance ce code (qui fonctionne bien dans l'ensemble), un comportement par défaut d'Outlook est cassé. Exemples:
- Le brouillon du message n'est pas enregistré. Si je frappe la réponse, tapez quelque chose dans la fenêtre de réponse en ligne et laisser ce message, en rentrant du travail est allé
- Coller du presse-papiers ne fonctionne pas
Peut-être plus caractéristiques sont cassées maintenant. Je n'ai aucune idée de pourquoi c'est. Qu'est-ce qui cause cela, et que pouvons-nous faire pour empêcher cela de se produire?
Dans ce cas: myOlExplorer.ActiveInlineResponseWordEditor – Jeroen