A Microsoft Outlook email forum. Outlook Banter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » Outlook Banter forum » Microsoft Outlook Email Newsgroups » Outlook and VBA
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

VBA Clipboard Cut & Paste from Excel to Outlook



 
 
Thread Tools Search this Thread Display Modes
  #1  
Old January 29th 07, 01:47 AM posted to microsoft.public.outlook.program_vba
andy
external usenet poster
 
Posts: 122
Default VBA Clipboard Cut & Paste from Excel to Outlook

An unusual one this one but please read on.

If I manually copy a range of cells from an Excel worksheet and then paste
into a Draft email in Outlook (My Outlook 2003 uses HTML as draft format with
Word as editor) the resulting pasted cells look fine - colors and formatting
are maintained.

OK now to do it in VBA from Excel.

I copy the range of cells into Clipboard with :-

Range(Cells(aa, 4), Cells(bb, 17)).Select
Selection.Copy

I then obtain the contents of Clipboard and place into a String variable
with :-

Set MyData = New DataObject

MyData.GetFromClipboard
strClip = MyData.GetText

I then create an Outloook object within VBA and build a Draft message using
strClip as part of the Message body.

This all works OK and the Draft message is created but the resulting pasted
range of cells in the Draft message does not look very good, the values are
mis-aligned and wrapped around with any color formatting is lost. It does not
give me the same pretty result as manually cutting and pasting the cells.

Does anyone know how I can preserve the formatting using the VBA method so
that the resulting pasted cells looks as good as the manual method?

Thanks.




  #2  
Old January 29th 07, 07:20 AM posted to microsoft.public.outlook.program_vba
Michael Bauer [MVP - Outlook]
external usenet poster
 
Posts: 1,885
Default VBA Clipboard Cut & Paste from Excel to Outlook


With Word as mail editor you can use its object model to insert the
clipboard content. Like this:

Dim Doc as Word.Document
Set Doc=Application.ActiveInspector.WordEditor
Doc.Range.Paste

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Sun, 28 Jan 2007 16:47:00 -0800 schrieb Andy:

An unusual one this one but please read on.

If I manually copy a range of cells from an Excel worksheet and then paste
into a Draft email in Outlook (My Outlook 2003 uses HTML as draft format

with
Word as editor) the resulting pasted cells look fine - colors and

formatting
are maintained.

OK now to do it in VBA from Excel.

I copy the range of cells into Clipboard with :-

Range(Cells(aa, 4), Cells(bb, 17)).Select
Selection.Copy

I then obtain the contents of Clipboard and place into a String variable
with :-

Set MyData = New DataObject

MyData.GetFromClipboard
strClip = MyData.GetText

I then create an Outloook object within VBA and build a Draft message

using
strClip as part of the Message body.

This all works OK and the Draft message is created but the resulting

pasted
range of cells in the Draft message does not look very good, the values

are
mis-aligned and wrapped around with any color formatting is lost. It does

not
give me the same pretty result as manually cutting and pasting the cells.

Does anyone know how I can preserve the formatting using the VBA method so
that the resulting pasted cells looks as good as the manual method?

Thanks.

  #3  
Old January 29th 07, 03:58 PM posted to microsoft.public.outlook.program_vba
andy
external usenet poster
 
Posts: 122
Default VBA Clipboard Cut & Paste from Excel to Outlook

Thanks Michael,

Your idea sounds good but I am not sure how exactly to code your suggestion.

I tried :-

Set Doc=objOutlook.ActiveInspector.WordEditor (where objOutlook is a new
Outlook appliaction object)

but I got a 'Can't set object outside a With Block error'

My other confusion is your line :-

Doc.Range.Paste

Yes - the syntax is valid but how would it relate to the building of an
Outlook message for my Draft email? I am setting the objEmail.Body to be a
string hopeflly including the table that I am trying to cut and paste. In
other words, I don't just need the table copying in, but I need to put some
fixed words around the table as well.

I think my main problem relates to Outlook. When building a message in Excel
VBA the message ends up being Plain text which is messing up the formatting
of the cut & paste table. I need a way of letting Outlook know that it is
HTML or Rich Text format.

Happy to include my code so far if you need it.

Thanks.



"Michael Bauer [MVP - Outlook]" wrote:


With Word as mail editor you can use its object model to insert the
clipboard content. Like this:

Dim Doc as Word.Document
Set Doc=Application.ActiveInspector.WordEditor
Doc.Range.Paste

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Sun, 28 Jan 2007 16:47:00 -0800 schrieb Andy:

An unusual one this one but please read on.

If I manually copy a range of cells from an Excel worksheet and then paste
into a Draft email in Outlook (My Outlook 2003 uses HTML as draft format

with
Word as editor) the resulting pasted cells look fine - colors and

formatting
are maintained.

OK now to do it in VBA from Excel.

I copy the range of cells into Clipboard with :-

Range(Cells(aa, 4), Cells(bb, 17)).Select
Selection.Copy

I then obtain the contents of Clipboard and place into a String variable
with :-

Set MyData = New DataObject

MyData.GetFromClipboard
strClip = MyData.GetText

I then create an Outloook object within VBA and build a Draft message

using
strClip as part of the Message body.

This all works OK and the Draft message is created but the resulting

pasted
range of cells in the Draft message does not look very good, the values

are
mis-aligned and wrapped around with any color formatting is lost. It does

not
give me the same pretty result as manually cutting and pasting the cells.

Does anyone know how I can preserve the formatting using the VBA method so
that the resulting pasted cells looks as good as the manual method?

Thanks.


  #4  
Old January 30th 07, 07:49 AM posted to microsoft.public.outlook.program_vba
Michael Bauer [MVP - Outlook]
external usenet poster
 
Posts: 1,885
Default VBA Clipboard Cut & Paste from Excel to Outlook


The message must be in HTML, of course. RTF may also work but only if your
receiver uses Outlook, too.

The shown line wouldn't cause the error 'Can't set object outside a With
Block error'. So there must be more around it that you doesn't show us.

Here's a complete sample. It's assumed that the HTML e-mail and workbook
'Mappe1.xls' are opened yet and copies the range from cell "B2" to "C6":

http://www.vboffice.net/sample.html?...1&cmd=showitem

Then please see Word's object model. You can exactly determine the Range
before calling its Paste method. Or you paste the table first, then write
additional text at the beginning of the document and some at it's end.

Outlook's object model doesn't allow you to place the cursor into an
e-mail's body. For instance, you could call the Insert commadn via the
toolbar, but if the cursor is currently in the To field then the clipboard
content gets inserted into that field.

If you don't want to use Word as mail editor then you need a workaround.
Then I'd recommend Redemption (www.dimastr.com) to set the cursor position.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Mon, 29 Jan 2007 06:58:03 -0800 schrieb Andy:

Thanks Michael,

Your idea sounds good but I am not sure how exactly to code your

suggestion.

I tried :-

Set Doc=objOutlook.ActiveInspector.WordEditor (where objOutlook is a new
Outlook appliaction object)

but I got a 'Can't set object outside a With Block error'

My other confusion is your line :-

Doc.Range.Paste

Yes - the syntax is valid but how would it relate to the building of an
Outlook message for my Draft email? I am setting the objEmail.Body to be a
string hopeflly including the table that I am trying to cut and paste. In
other words, I don't just need the table copying in, but I need to put

some
fixed words around the table as well.

I think my main problem relates to Outlook. When building a message in

Excel
VBA the message ends up being Plain text which is messing up the

formatting
of the cut & paste table. I need a way of letting Outlook know that it is
HTML or Rich Text format.

Happy to include my code so far if you need it.

Thanks.



"Michael Bauer [MVP - Outlook]" wrote:


With Word as mail editor you can use its object model to insert the
clipboard content. Like this:

Dim Doc as Word.Document
Set Doc=Application.ActiveInspector.WordEditor
Doc.Range.Paste

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Sun, 28 Jan 2007 16:47:00 -0800 schrieb Andy:

An unusual one this one but please read on.

If I manually copy a range of cells from an Excel worksheet and then

paste
into a Draft email in Outlook (My Outlook 2003 uses HTML as draft format

with
Word as editor) the resulting pasted cells look fine - colors and

formatting
are maintained.

OK now to do it in VBA from Excel.

I copy the range of cells into Clipboard with :-

Range(Cells(aa, 4), Cells(bb, 17)).Select
Selection.Copy

I then obtain the contents of Clipboard and place into a String variable
with :-

Set MyData = New DataObject

MyData.GetFromClipboard
strClip = MyData.GetText

I then create an Outloook object within VBA and build a Draft message

using
strClip as part of the Message body.

This all works OK and the Draft message is created but the resulting

pasted
range of cells in the Draft message does not look very good, the values

are
mis-aligned and wrapped around with any color formatting is lost. It

does
not
give me the same pretty result as manually cutting and pasting the

cells.

Does anyone know how I can preserve the formatting using the VBA method

so
that the resulting pasted cells looks as good as the manual method?

Thanks.


  #5  
Old January 30th 07, 07:16 PM posted to microsoft.public.outlook.program_vba
andy
external usenet poster
 
Posts: 122
Default VBA Clipboard Cut & Paste from Excel to Outlook

Cool - That worked fine but your example has to be run from Outlook with an
New email open.

I am trying to run the whole thing from Excel opening up Outlook as an
Object and creating several Draft emails to cut &paste into each.

Could you provide any more guidance?

Thanks.

"Michael Bauer [MVP - Outlook]" wrote:


The message must be in HTML, of course. RTF may also work but only if your
receiver uses Outlook, too.

The shown line wouldn't cause the error 'Can't set object outside a With
Block error'. So there must be more around it that you doesn't show us.

Here's a complete sample. It's assumed that the HTML e-mail and workbook
'Mappe1.xls' are opened yet and copies the range from cell "B2" to "C6":

http://www.vboffice.net/sample.html?...1&cmd=showitem

Then please see Word's object model. You can exactly determine the Range
before calling its Paste method. Or you paste the table first, then write
additional text at the beginning of the document and some at it's end.

Outlook's object model doesn't allow you to place the cursor into an
e-mail's body. For instance, you could call the Insert commadn via the
toolbar, but if the cursor is currently in the To field then the clipboard
content gets inserted into that field.

If you don't want to use Word as mail editor then you need a workaround.
Then I'd recommend Redemption (www.dimastr.com) to set the cursor position.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Mon, 29 Jan 2007 06:58:03 -0800 schrieb Andy:

Thanks Michael,

Your idea sounds good but I am not sure how exactly to code your

suggestion.

I tried :-

Set Doc=objOutlook.ActiveInspector.WordEditor (where objOutlook is a new
Outlook appliaction object)

but I got a 'Can't set object outside a With Block error'

My other confusion is your line :-

Doc.Range.Paste

Yes - the syntax is valid but how would it relate to the building of an
Outlook message for my Draft email? I am setting the objEmail.Body to be a
string hopeflly including the table that I am trying to cut and paste. In
other words, I don't just need the table copying in, but I need to put

some
fixed words around the table as well.

I think my main problem relates to Outlook. When building a message in

Excel
VBA the message ends up being Plain text which is messing up the

formatting
of the cut & paste table. I need a way of letting Outlook know that it is
HTML or Rich Text format.

Happy to include my code so far if you need it.

Thanks.



"Michael Bauer [MVP - Outlook]" wrote:


With Word as mail editor you can use its object model to insert the
clipboard content. Like this:

Dim Doc as Word.Document
Set Doc=Application.ActiveInspector.WordEditor
Doc.Range.Paste

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Sun, 28 Jan 2007 16:47:00 -0800 schrieb Andy:

An unusual one this one but please read on.

If I manually copy a range of cells from an Excel worksheet and then

paste
into a Draft email in Outlook (My Outlook 2003 uses HTML as draft format
with
Word as editor) the resulting pasted cells look fine - colors and
formatting
are maintained.

OK now to do it in VBA from Excel.

I copy the range of cells into Clipboard with :-

Range(Cells(aa, 4), Cells(bb, 17)).Select
Selection.Copy

I then obtain the contents of Clipboard and place into a String variable
with :-

Set MyData = New DataObject

MyData.GetFromClipboard
strClip = MyData.GetText

I then create an Outloook object within VBA and build a Draft message
using
strClip as part of the Message body.

This all works OK and the Draft message is created but the resulting
pasted
range of cells in the Draft message does not look very good, the values
are
mis-aligned and wrapped around with any color formatting is lost. It

does
not
give me the same pretty result as manually cutting and pasting the

cells.

Does anyone know how I can preserve the formatting using the VBA method

so
that the resulting pasted cells looks as good as the manual method?

Thanks.


  #6  
Old January 31st 07, 07:08 AM posted to microsoft.public.outlook.program_vba
Michael Bauer [MVP - Outlook]
external usenet poster
 
Posts: 1,885
Default VBA Clipboard Cut & Paste from Excel to Outlook


From Excel the Application object refers to Excel. So you need a variable
for the Outlook Application object and either use GetObject, or, if Outlook
doesn't run, CreateObject to get the reference to Outlook.

Please note, that the WordEditor property is protected. Calling that
property without having Outlook's instrinsic Application object will prompt
a security dialog.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Tue, 30 Jan 2007 10:16:02 -0800 schrieb Andy:

Cool - That worked fine but your example has to be run from Outlook with

an
New email open.

I am trying to run the whole thing from Excel opening up Outlook as an
Object and creating several Draft emails to cut &paste into each.

Could you provide any more guidance?

Thanks.

"Michael Bauer [MVP - Outlook]" wrote:


The message must be in HTML, of course. RTF may also work but only if

your
receiver uses Outlook, too.

The shown line wouldn't cause the error 'Can't set object outside a With
Block error'. So there must be more around it that you doesn't show us.

Here's a complete sample. It's assumed that the HTML e-mail and workbook
'Mappe1.xls' are opened yet and copies the range from cell "B2" to "C6":

http://www.vboffice.net/sample.html?...1&cmd=showitem

Then please see Word's object model. You can exactly determine the Range
before calling its Paste method. Or you paste the table first, then write
additional text at the beginning of the document and some at it's end.

Outlook's object model doesn't allow you to place the cursor into an
e-mail's body. For instance, you could call the Insert commadn via the
toolbar, but if the cursor is currently in the To field then the

clipboard
content gets inserted into that field.

If you don't want to use Word as mail editor then you need a workaround.
Then I'd recommend Redemption (www.dimastr.com) to set the cursor

position.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Mon, 29 Jan 2007 06:58:03 -0800 schrieb Andy:

Thanks Michael,

Your idea sounds good but I am not sure how exactly to code your

suggestion.

I tried :-

Set Doc=objOutlook.ActiveInspector.WordEditor (where objOutlook is a new
Outlook appliaction object)

but I got a 'Can't set object outside a With Block error'

My other confusion is your line :-

Doc.Range.Paste

Yes - the syntax is valid but how would it relate to the building of an
Outlook message for my Draft email? I am setting the objEmail.Body to be

a
string hopeflly including the table that I am trying to cut and paste.

In
other words, I don't just need the table copying in, but I need to put

some
fixed words around the table as well.

I think my main problem relates to Outlook. When building a message in

Excel
VBA the message ends up being Plain text which is messing up the

formatting
of the cut & paste table. I need a way of letting Outlook know that it

is
HTML or Rich Text format.

Happy to include my code so far if you need it.

Thanks.



"Michael Bauer [MVP - Outlook]" wrote:


With Word as mail editor you can use its object model to insert the
clipboard content. Like this:

Dim Doc as Word.Document
Set Doc=Application.ActiveInspector.WordEditor
Doc.Range.Paste

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Keep your Outlook categories organized!
http://www.shareit.com/product.html?...4&languageid=1
(German: http://www.VBOffice.net/product.html?pub=6)


Am Sun, 28 Jan 2007 16:47:00 -0800 schrieb Andy:

An unusual one this one but please read on.

If I manually copy a range of cells from an Excel worksheet and then

paste
into a Draft email in Outlook (My Outlook 2003 uses HTML as draft

format
with
Word as editor) the resulting pasted cells look fine - colors and
formatting
are maintained.

OK now to do it in VBA from Excel.

I copy the range of cells into Clipboard with :-

Range(Cells(aa, 4), Cells(bb, 17)).Select
Selection.Copy

I then obtain the contents of Clipboard and place into a String

variable
with :-

Set MyData = New DataObject

MyData.GetFromClipboard
strClip = MyData.GetText

I then create an Outloook object within VBA and build a Draft message
using
strClip as part of the Message body.

This all works OK and the Draft message is created but the resulting
pasted
range of cells in the Draft message does not look very good, the

values
are
mis-aligned and wrapped around with any color formatting is lost. It

does
not
give me the same pretty result as manually cutting and pasting the

cells.

Does anyone know how I can preserve the formatting using the VBA

method
so
that the resulting pasted cells looks as good as the manual method?

Thanks.


 




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Clipboard gets empty by itself, cleared clipboard, copy paste doesn't work, outlook clears clipboard, problems with clipboard - possible solution Jens Hoerburger Outlook - General Queries 0 August 24th 06 03:44 PM
HTML cut-and-paste bug [email protected] Outlook and VBA 0 April 20th 06 04:26 PM
Cut & Paste Outlook Display Names Into To Field Display As ; PJ Outlook - Using Contacts 0 March 9th 06 05:16 PM
Cut and Paste Outlook and all settings BEEJAY Outlook - Installation 1 March 5th 06 11:31 PM
Outlook should allow cut and paste when creating message rules. exflier Outlook - General Queries 1 January 18th 06 04:14 PM


All times are GMT +1. The time now is 08:39 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2025 Outlook Banter.
The comments are property of their posters.