-
Notifications
You must be signed in to change notification settings - Fork 0
OutlookLink
This VBA macro code is heavily inspired by the information available at [http://mutable.net/blog/archive/2006/09/02/how_to_hyperlink_to_microsoft_outlook_messages.aspx]. I only adjusted the generated link text to make it suitable for use in WikidPad.
Just create these macros in Outlook, and optionally bind the macro to a toolbar button or menu command for easy access.
In Outlook, select one or more messages and execute the macro (using the toolbar button, for example). Your clipboard will now contain direct URL links to these messages in a WikidPad-ready format, ready to be pasted in your wiki page. By default, the link shows the message subject, author and received date & time. This can be adjusted in the GetMsgDetails() function if needed.
For Outlook 2007, these links won't work out-of-the-box. That's because Outlook 2007 does not register the "outlook://" protocol handler in Windows. You can configure this yourself using RegEdit, a detailed explanation is available over here: [http://www.slipstick.com/outlook/ol2007/outlookprotocol.asp]. Outlook links in WikidPad should work without problems afterwards.
Sub CopyItemIDs()
Dim myOLApp As Application
Dim myNameSpace As NameSpace
Dim currentMessage As MailItem
Dim ClipBoard As String
Dim DataO As DataObject
' Housekeeping: set up the macro environment
Set myOLApp = CreateObject("Outlook.Application")
Set myNameSpace = myOLApp.GetNamespace("MAPI")
' Figure out if the active window is a list of messages or one message
' in its own window
On Error GoTo QuitIfError ' But if there's a problem, skip it
Select Case myOLApp.ActiveWindow.Class
' The active window is a list of messages (folder); this means there
' might be several selected messages
Case olExplorer
' build the clipboard string
For Each currentMessage In myOLApp.ActiveExplorer.Selection
ClipBoard = GetMsgDetails(currentMessage, ClipBoard)
Next
' The active window is a message window, meaning there will only
' be one selected message (the one in this window)
Case olInspector
' build the clipboard string
ClipBoard = GetMsgDetails(myOLApp.ActiveInspector.CurrentItem, _
ClipBoard)
' can't handle any other kind of window; anything else will be ignored
End Select
QuitIfError: ' Come here if there was some kind of problem
Set myOLApp = Nothing
Set myNameSpace = Nothing
Set currentMessage = Nothing
Set DataO = New DataObject
DataO.Clear
DataO.SetText ClipBoard
DataO.PutInClipboard
Set DataO = Nothing
End Sub
Function GetMsgDetails(Item As MailItem, Details As String) As String
If Details <> "" Then
Details = Details + vbCrLf
End If
Details = Details + "[Outlook:" + Item.EntryID + " | " + Item.Subject + " (" + Item.SenderName + ", " + Format(Item.ReceivedTime, "yyyymmdd | hh:mm") + ")]" + vbCrLf
GetMsgDetails = Details
End Function
Source: http://trac.wikidpad2.webfactional.com/wiki/OutlookLink