2016-03-08 1 views
1

J'essaie donc de créer un code pour accélérer l'insertion d'un lien hypertexte dans Outlook.Insérer un lien hypertexte dans le corps d'Outlook

J'essaie de l'avoir si bien que si j'ai déjà copié un chemin, je peux simplement entrer et taper Ctrl W et il va insérer le lien hypertexte pour le mot ici. Ma tentative est le code:

Sub InsertHyperlink() 
' 
' 
' 
On Error Resume Next 
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _ 
    "U:\plot.log", _ 
    SubAddress:="", ScreenTip:="", TextToDisplay:="here" 
End Sub 

J'ai des problèmes sur la façon de mettre à jour mon code afin que fonctionnera dans Outlook (je programmé dans Word) et que le « U: \ plot.log » serait en fait être le chemin copié (pas le chemin copié quand j'ai enregistré la macro).

Quelqu'un a-t-il des suggestions?

+1

Désolé j'ai oublié de cliquer sur Accepter. Merci encore pour votre aide! – broncos15

Répondre

2

Définissez vous vos références à objet Word Library

Tools > References > add Word object Library

Option Explicit 
Sub Add_Hyperlinks() 
    Dim olNameSpace As Outlook.NameSpace 
    Dim wDoc As Word.Document 
    Dim rngSel As Word.Selection 

    If Application.ActiveInspector.EditorType = olEditorWord Then 
     Set wDoc = Application.ActiveInspector.WordEditor ' use WordEditor 
     Set olNameSpace = Application.Session 
     Set rngSel = wDoc.Windows(1).Selection ' Current selection 

     wDoc.Hyperlinks.Add rngSel.Range, _ 
     Address:="U:\plot.log", TextToDisplay:="Here is the link" 
    End If 

    Set wDoc = Nothing 
    Set olNameSpace = Nothing 

End Sub 
1

Merci beaucoup pour l'aide, je l'apprécie vraiment! J'ai donc légèrement modifié votre code pour essayer de le coller dans le presse-papiers.

Mon nouveau code est le suivant. Dois-je ajouter une erreur de piégeage? Aussi, que fait exactement l'option explicite?

Option Explicit 
Sub Add_Hyperlinks() 
    Dim olNameSpace As Outlook.NameSpace 
    Dim wDoc As Word.Document 
    Dim rngSel As Word.Selection 
    Dim DataObj As MSForms.DataObject 
    Set DataObj = New MSForms.DataObject 
    DataObj.GetFromClipboard 
If Application.ActiveInspector.EditorType = olEditorWord Then 
    Set wDoc = Application.ActiveInspector.WordEditor ' use WordEditor 
    Set olNameSpace = Application.Session 
    Set rngSel = wDoc.Windows(1).Selection ' Current selection 
    wDoc.Hyperlinks.Add rngSel.Range, _ 
    Address:=DataObj.GetText(1), TextToDisplay:="here" 
End If 
Set wDoc = Nothing 
Set olNameSpace = Nothing 
End Sub 
+0

Je ne pense pas que vous avez besoin de piéger les erreurs - voir aussi [option explicite] (https://msdn.microsoft.com/fr-fr/library/y9341s4f.aspx?f=255&MSPPError=-2147217396) – 0m3r