View Single Post
  #38   Report Post  
Posted to microsoft.public.office.developer.outlook.vba,microsoft.public.outlook,microsoft.public.word.newusers,microsoft.public.word.vba.general
Sue Mosher [MVP-Outlook] Sue Mosher [MVP-Outlook] is offline
external usenet poster
 
Posts: 6
Default How to get to email from Word

Which statement causes the crash? Error messages?

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"Graham Mayor" wrote in message ...
Sue

The suggestion set the little cogs in motion

The following now does work to paste the formatted text into the body of the
message, and I have added a routine to grab the addressee information from
Outlook. However while it does work when Outlook is running already, it
usually crashes Word when Outlook is supposed to be started from the macro.

Sub Send_Extract_As_EMail()
' send the document in an Outlook Email message
' 2007 Graham Mayor, Tony Jollans, Doug Robbins
' & Sue Mosher

Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim objDoc As Word.Document
Dim strEMail As String

strEMail = "PR_EMAIL_ADDRESS"
'Let the user choose the contact from Outlook
'And assign the email address to a variable

strEMail = Application.GetAddress("", strEMail, _
False, 1, , , True, True)
If strEMail = "" Then
MsgBox "User cancelled or no address listed", , "Cancel"
End If

On Error Resume Next

'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")

'Outlook wasn't running, start it from code
If Err 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
Set objDoc = oItem.GetInspector.WordEditor
With oItem
.to = strEMail
.Subject = InputBox("Subject?")
Selection.Copy
objDoc.Range.Paste
.Display
End With

'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org




Sue Mosher [MVP-Outlook] wrote:
Yes, it should have been Set not Dim. Sorry for the confusion.


"Graham Mayor" wrote in message
...
Thanks for that. I assume the second 'Dim' was a typo?

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Sue Mosher [MVP-Outlook] wrote:
You might find the recent discussion at
http://www.outlookcode.com/threads.a...essageid=26382
useful, as it was on a similar subject.

I don't know if it is a clue, but if I enter
.GetInspector
and then a period vba prompts with the options - including
.WordEditor
If I add a period to the end of that, there isn't the usual prompt
offering .Range etc (though it doesn't baulk at its addition).

Declare a Word.Document object and instantiate it:

Dim objDoc as Word.Document
Dim objDoc = MyMessage.GetInspector.WordEditor

You'll then get intellisense for objDoc.




"Graham Mayor" wrote in message
...
The only thing I do in Outlook is extract a line of code from a
daily e-mail and paste it into a Word table, using a variation of
the code we discussed on an earlier occasion.

I don't appear to be able to do anything in code with the object.

I don't get an OMG (?) prompt or any other prompt or error message.
The Outlook message window opens the addressee and subject are
filled and (if nothing is entered in the ".Body =" line) the
default theme is used. The cursor is in the body area and nothing
is pasted. Pressing CTRL V or clicking the Paste button pastes the
formatted text.

I don't know if it is a clue, but if I enter
.GetInspector
and then a period vba prompts with the options - including
.WordEditor
If I add a period to the end of that, there isn't the usual prompt
offering .Range etc (though it doesn't baulk at its addition).

It doesn't make any difference whether or not Outlook is running.

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org




Tony Jollans wrote:
Graham,

I know you do other things in Outlook - do you have active event
procedures that might interfere at all? Is it just the paste that
fails - can you do anything with the Document (WordEditor) object,
or its Range object? I'm not sure what else to ask - do you get
the OMG prompt (triggered by the GetInspector)? Does it make a
difference if Outlook is already running?

"Graham Mayor" wrote in message
...
Hmmm! That's essentially what Tony suggested, but it doesn't work
for me with either Word 2003 or 2007. Nothing is pasted into the
text space, unless you actually click the paste button or CTRL+V

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org




Jen wrote:
I use 2007 Outlook and Word 2003 and Word 2007
I did play with Options Mail Format to HTML and Rich Text.


Sub Send_Extract_As_MailKeepFmt()
' send the document in an Outlook Email message - HTML Rich Text
Format maintained (Brilliant)
' 20April2008
' 2007 Graham Mayor Tony Jollans Doug Robbins

Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem

On Error Resume Next

'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")

'Outlook wasn't running, start it from code
If Err 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem

.to = "
.Subject = InputBox("Subject?")
Selection.Copy
.GetInspector.WordEditor.Range.Paste
' .Body = Selection
.Display
End With


'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub


"Graham Mayor" wrote in message
...
That'll teach me to not to be so fast in pressing the send
button There appears to be something I am missing?
The modifications do not paste the text into the message here?

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Graham Mayor wrote:
Brilliant - thanks


Tony Jollans wrote:
There ought to be a way to use HTMLBody but it isn't entirely
straightforward.

What you can do is address the Word editor in Outlook 2007
and paste the selection in. The downside to this is that the
OMG gives you a popup but that probably isn't a big issue in
a personal environment. Instead of:

.Body = Selection

Try:

Selection.Copy
.GetInspector.WordEditor.Range.Paste


"Graham Mayor" wrote in message
...
I had already tried that

The formatting is lost between Word and Outlook and there
doesn't seem to be a way to actually paste into the text
area of the Outlook message window using the macro that I
have found ... yet --

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org

.

Doug Robbins - Word MVP wrote:
Try

.Body = Selection.FormattedText


"Graham Mayor" wrote in message
...
I can't think of a way to pass the formatting between the
applications using this macro construction. Until someone
comes up with something better, change the line.

.Body = Selection
to
.Body = ""

and paste your formatted selection into the text area.

To cast the net wider I have cross-posted to the
programming and Outlook forums

Sub Send_Extract_As_Mail()
' send the document in an Outlook Email message
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem

On Error Resume Next

'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")

'Outlook wasn't running, start it from code
If Err 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
.to = "
.Subject = InputBox("Subject?")
.Body = Selection
.Display
End With
'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org




George Lutz wrote:
Terry:

Thanks, but that had no effect on the result.

George Lutz

"Terry Farrell" wrote:

In Outlook, go to Tools, Options, select the Mail Format
tab and then click on Editor Options at the bottom.

Select the Advanced tab and then under Cut, Copy Paste
section, make sure that the Keep Source formatting
option is selected. that should then paste and keep your
formatting without need to modify the macro. Terry

"George Lutz"
wrote in message
...
Terry -- thanks, I found it.

Graham: Can your macro be modifed so that the text that
is pasted into the email body preserves the formatting
it had in Word? When I run your macro,
bolded text becomes unbolded and tabs disappear.

Thanks.

George Lutz

"Terry Farrell" wrote:

Right-click anywhere on the QAT and select Customize.
In the customize dialog, select All Commands and
scroll down to Microsoft Outlook.

But I am assuming that you have the whole Office 2007
suit and not just Word
2007 mixed with Outlook 2003. That combination won't
work as Word 2007 needs
Outlook 2007 for compatibility.

Hope this sorts it for you.

Terry

"George Lutz"
wrote in message
...
Graham's macro works very nicely -- thank you,
Graham.

Terry: I would like to try your suggestion, but
Outlook does not seem to
be
a Command available to me in Word Options |
Customize | All Commands. Where
can I find the Command to which you are referring?

Thanks.

George Lutz

"Terry Farrell" wrote:

George

You can add the Outlook command button to the QAT,
just like you can add
the
Send to Mail Recipient tool to the QAT.

Terry Farrell

"George Lutz"
wrote in message
...
But I don't want to send the entire Word document
-- just the portion
of
it
that is my email. I take notes as I go through the
day, and occasionally
compose an email that I then want to send. The
email is just a small
portion
of the day's notes. So, I compose the email, then
cut and paste its text
into Outlook. The button I used in Word 2003
called up Outlook, opened
a
blank email, and allowed me to paste in the text I
had prepared in Word.
I
also had a button that called up Outlook with an
email already addressed
to
my assistant, who is the recipient of about half of
the 20 or so emails
I
send each day -- very convenient. Amazing that
such a useful feature
would
be eliminated in an "updated" version of Word!

I appreciate your replies. however.

George Lutz

"Terry Farrell" wrote:

It was never necessary to copy and paste into a
blank email in Outlook.
All
you ever needed to do from Word was to click on
the Send to Mail Recipient
tool (in either Word 2002, Word 2003 or Word
2007).

When you click on that tool, it adds the standard
email address bar to
the
top of the windows which looks and feels identical
to the blank email
in
Outlook.

In Word 2007, you need to add this command button
Send Mail to Recipient
to
the QAT because Microsoft inexplicably left it off
the Send Menu.

--
Terry Farrell - MSWord MVP

"George Lutz" George
wrote in message
...
I just chagned from Word 2003 to Word 2007. In
Word 2003, I had an
icon
in
the toolbar that allowed me to call upOutlook.
I.e., I wouudl compose
and
email in word, then select and copy it, then
click on this icno, and
an
email
opened up ready for me to paste in the text. I am
pretty sure I used
the
Customixe feature in 2002 to do this.

How can I get such an icon in 2007 to land in my
Quick Access Toolbar?

Thanks.

George Lutz