Angela said:
Can the mailto command use strings and variavbles from inside the word
document?
e.g.
have a block of text once in a document and reference this text in the
mailto: command so that many mailto: command can use the same bit of
text and then the full text be in the email (not just a link to the
text in the document.)
Yep, it can be done, but there is a limit on the overall length. I want to say it's
around 2000 chars, but can't recall precisely. You build the mailto URL from your
strings/variables, something like this:
Private Sub PrepareEmail(ByVal AddrTo As String, ByVal AddrCc As String, ByVal
Subject As String, ByVal Body As String)
Dim Link As String
Link = "mailto:" & AddrTo & _
"?cc=" & AddrCc & _
"&subject=" & Subject & _
"&body=" & EscapeURL(Body)
Call OpenDoc(Link)
End Sub
The two helper functions there prepare the body text for use in a URL and actually
execute the link:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function UrlEscape Lib "Shlwapi.dll" Alias "UrlEscapeA" (ByVal
pszURL As String, ByVal pszEscaped As String, ByRef pcchEscaped As Long, ByVal
dwFlags As Long) As Long
Private Const URL_DONT_ESCAPE_EXTRA_INFO As Long = &H2000000
Private Function EscapeURL(ByVal URL As String) As String
' Purpose: A thin wrapper for the URLEscape API function.
Dim EscTxt As String
Dim nLen As Long
' Create a maximum sized buffer.
nLen = Len(URL) * 3
EscTxt = Space$(nLen)
If UrlEscape(URL, EscTxt, nLen, URL_DONT_ESCAPE_EXTRA_INFO) = 0 Then
EscapeURL = Left$(EscTxt, nLen)
End If
End Function
Private Function OpenDoc(ByVal DocFile As String) As Long
Dim nRet As Long
' Actually uses the default verb if available, and "open" otherwise
nRet = ShellExecute(0&, vbNullString, DocFile, vbNullString, vbNullString,
vbNormalFocus)
Debug.Print "ShellExecute: "; nRet
OpenDoc = nRet
End Function
Later... Karl