Hi Stacy,
I´m so sorry, it was my fault. Please write it without "Session":
Set oMail = Application.ActiveExplorer.Selection(1)
--
Viele Grüße
Michael Bauer
The way I run it is, I open a piece of mail. Go to macros and run the
macro.
When I get it working I will simply add the macro to the toolbar of
Outlook
2000.
I do not run it in Word or anything like that.
Regards
Stacy
Ok, do you execute the macro from within Word? In that case
Application
would reference the Word Application object, which hasn´t a Session
property, and that would raise the error.
You´d need a variable for the reference on the Outlook Application
object. E.g.:
On Error Resume Next
Dim olApp as Outlook.Application
Set olApp = GetObject(,"Outlook.Application")
If Err.Number Then
Set olApp = CreateObject((,"Outlook.Application")
Endif
--
Viele Grüße
Michael Bauer
Actually It stops near the top when it tried to process
Set oMail = Application.Session.ActiveExplorer.Selection(1)
Thats when I get the error I mentioned.
To answer your question I think the library is in "MS Forms 2.0
fm20.dll"
But the clipboard works fine in my first sample I submitted. Its
at
the
above line it seems to die.
Regards
Hi Stacy,
where do you get this error?
objDataObj.SetText JustEmailAddress
objDataObj.PutInClipboard
I suppose one of this lines causes the error. From which library
do
you
use the DataObject?
--
Viele Grüße
Michael Bauer
Thanks again. I have tried with my simple understanding to get
this to
work
but can't seem to get it right.
Here is what I think should work. But I get an error message :
Run-time error '838'
Object doesn't support this property or method
-- code --
Sub aaTest_InStr4()
Dim SearchString1, SearchChar1, SearchChar2, MyPos1, _
objDataObj As New DataObject
Dim oMail As Outlook.MailItem
Set oMail = Application.Session.ActiveExplorer.Selection(1)
SearchString1 = oMail.Body
'''SearchString1 = "[mailto:
[email protected]]"
SearchChar1 = "["
SearchChar2 = "]"
'Position string is found in
MyPos1 = InStr(1, SearchString1, SearchChar1, 1)
MyPos2 = InStr(1, SearchString1, SearchChar2, 1)
JustEmailAddress = Mid(SearchString1, MyPos1 + 8, MyPos2 - 9)
MsgBox "Just the email address is " & JustEmailAddress
'Put address in clipboard
objDataObj.SetText JustEmailAddress
objDataObj.PutInClipboard
End Sub
-- code--
Hi Stacy,
this returns a reference on the first selected item in a
mail
folder
(assuming it´s really a MailItem) and writes its body
(content)
to
your
variable:
Dim oMail as Outlook.MailItem
Set oMail = Application.Session.ActiveExplorer.Selection(1)
SearchString1 = oMail.Body
--
Viele Grüße
Michael Bauer
I have writen the following code based the advice given
here.
(Please
dont
criticise it too much im not an expert, I just do one off
things
to
help me
make my life a little easier.) The advice was very
helpfull.
Thanks.
Now I want to get it to actually run on the body of mail.
How can I get this code to run on the body of a piece of
mail?
In other words open the mail message, click the macro and
vola
it
finds the
first email address surounded by [ ]
Thank you.
Stacy
Ps there is lots of msg boxes because I find they help in
my
debugging
process.
----- code -----
Sub aaTest_InStr4()
'March 15 2005
'Using the Instr Function this code looks for the brackets
and
will
give you
'the positions of the variables.
'However it only does it in the script it does not do it
in a
piece of
mail
Dim SearchString1, SearchChar1, SearchChar2, MyPos1, _
objDataObj As New DataObject
SearchString1 = "[mailto:
[email protected]]"
SearchChar1 = "["
SearchChar2 = "]"
'Position string is found in
MyPos1 = InStr(1, SearchString1, SearchChar1, 1)
MyPos2 = InStr(1, SearchString1, SearchChar2, 1)
MsgBox "The [ bracket is found at position " & MyPos1 &
"." &
_
" The ] bracket is found at position " & MyPos2 & "."
FullEmailAddress = Mid(SearchString1, MyPos1, MyPos2)
MsgBox "The full email address is " & FullEmailAddress
JustEmailAddress = Mid(SearchString1, MyPos1 + 8, MyPos2 -
9)
MsgBox "Just the email address is " & JustEmailAddress
'Put address in clipboard
objDataObj.SetText JustEmailAddress
objDataObj.PutInClipboard
End Sub
--- Code ---
Hi Stacy,
for searching strings in the message please use the
Instr
function.
It
returns the start position. This can be used to
determining
the
start
and end positions of a specific string. The string
itself
you
can
then
get with the Mid$, Left$, or Right$ functions.
Please just type in the function names and press F1 for
samples.
--
Viele Grüße
Michael Bauer
Michael,
Because the mail has been forwarded to me.
That is, they have forwarded me the information but
all of
the
info in
the
header of the mail is from the most recent sender not
the
one
who
originally
sent it.
As I had mentioned the only info I get is what is in
the
email
its
self. The
header has no information on the original sender. So I
want a
macro
which
can extract info from the body of the message. I could
cut
the
mail
and
paste it into word and then find it, because I can do
this
in
word.
But I
don't know how to do it in Outllook 2000 mail message.
Can you write a macro to search for [mailto:*******]
in
the
body
of
the
message? It seems to me that due to MS effort to stop
virus's
so
much
is not
available in Outlook.
Regards
Stacy
Hi Stacy,
why don´t you take the address from the
SenderAddress
property?
And
for
the reply, why not just call the MailItem.Reply
method?
--
Viele Grüße
Michael Bauer
People often forward me mail that I have to
respond
to.
Usually
its in
the
following format.
Note that the {end of line}is not in email Im just
telling
you
this
because
it may make it easier to find the end of the line
rather
than
the ]
-----snip---
John can you follow up on this for me.
Fred
-----Original Message-----
From: Joe Wu [mailto:
[email protected]] {end of
line}
Sent: Tuesday, March 08, 2005 12:41 PM
To: Info Sales; Evals
Subject: Eval Request - form
-----snip--
Can someone provide a macro that will search an
open
mail
message
for
the
first email address in that mail and then copy it
to
clipboard.
Then I can paste it where I want. The first email
message
is
delineated by
square brackets [ ]
I can do this easily in a word macro if I paste
the
message
into
word.
It
just searches for the first [ then selects from
there
to
the
end
of
the line
and copies it to clipboard.
I suppose what would rally be nice is if it could
take
the
email
address
from the body and then create a reply email based
on
the
mail
it
got
the
email address from but. That may be a little too
involved.
Regards