2016-03-08 178 views
1

所以我想創建一個代碼來加速在Outlook中插入超鏈接。在Outlook主體中插入超鏈接

我試圖讓它如此,如果我已經複製了一個路徑,我可以進入並鍵入Ctrl W,它會在這裏插入單詞的超鏈接。我的代碼嘗試是:

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

我有關於如何更新我的代碼,這樣,會在Outlook中的工作(我編程在Word)和問題,使「U:\ plot.log」會實際上是複製的路徑(不是記錄宏時的複製路徑)。

有沒有人有任何建議?

+1

對不起,我忘了點擊接受。再次感謝您的幫助! – broncos15

回答

2

設置爲Word對象庫的引用

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

非常感謝你的幫助,我真的很感激!所以我對你的代碼進行了一些細微的修改,試圖將它粘貼到剪貼板上。

我的新代碼如下。我是否需要添加任何錯誤陷印?另外,這個選項顯式地做了什麼?

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

我不認爲你需要錯誤陷阱 - 也見[選項顯式](https://msdn.microsoft.com/en-us/library/y9341s4f.aspx?f=255&MSPPError=-2147217396) – 0m3r