Outlook 2007 Macro: Paste - Paste Special - Unformatted Text

G

Gary Petersen

I'd like to assign a macro in Outlook 2007 to a Toolbar button that would
execute the equivalent of these clicks when there is formatted text in the
Windows clipboard:

1. Click the Paste icon by the bottom arrow
2. Click the Paste Special link.
3. Click the Unformatted Text link.

I have similar macros in Excel 2007 and Word 2007 but haven't been able to
get one to work in Outlook 2007 / VBA. What would the VBA code for such a
macro be?

When I try code similar to what I use in Word, I get a Run time error '424'
Object required error. I'm obviously not defining an object correctly, but
I've not been able to figure out how to do that properly. Thanks for the
help.
 
G

Gary Petersen

Thanks for the reply and link, Sue. So if my Word 2007 macro to paste
unformatted text is this:

Sub Paste_Unformatted_Text()
'
' Paste_Unformatted_Text Macro
'
'
Selection.PasteSpecial Link:=False, DataType:=wdPasteText
End Sub

Would my equivalent Outlook 2007 macro be this?

Sub Paste_Special_Unformatted()
Dim objDoc As Word.Document
Dim objSel As Word.Selection
On Error Resume Next
' get a Word.Selection from the open Outlook item
Set objDoc = Application.ActiveInspector.WordEditor
Set objSel = objDoc.Windows(1).Selection
' now do what you want with the Selection
objSel.PasteSpecial Link:=False, DataType:=wdPasteText
Set objDoc = Nothing
Set objSel = Nothing
End Sub

I don't get the error message with this, but it also doesn't appear to do
anything. Where am I going wrong?

Thanks again for your help. I do appreciate it.

Gary Petersen
--
Gary Petersen



Sue Mosher said:
You probably just need to modify your code so that it uses a Word.Selection
object deriveed from the Outlook item you're working with. I've posted an
example at
http://turtleflock-ol2007.spaces.live.com/blog/cns!C1013F1F9A99E3D8!579.entry
that shows how to do that.
 
S

Sue Mosher [MVP]

Nothing specific jumps out at me as a problem. Have you tried commenting out
the On Error Resume Next statement so you can see any errors as you step
through the code?

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


Gary Petersen said:
Thanks for the reply and link, Sue. So if my Word 2007 macro to paste
unformatted text is this:

Sub Paste_Unformatted_Text()
'
' Paste_Unformatted_Text Macro
'
'
Selection.PasteSpecial Link:=False, DataType:=wdPasteText
End Sub

Would my equivalent Outlook 2007 macro be this?

Sub Paste_Special_Unformatted()
Dim objDoc As Word.Document
Dim objSel As Word.Selection
On Error Resume Next
' get a Word.Selection from the open Outlook item
Set objDoc = Application.ActiveInspector.WordEditor
Set objSel = objDoc.Windows(1).Selection
' now do what you want with the Selection
objSel.PasteSpecial Link:=False, DataType:=wdPasteText
Set objDoc = Nothing
Set objSel = Nothing
End Sub

I don't get the error message with this, but it also doesn't appear to do
anything. Where am I going wrong?
 
G

Gary Petersen

I did, here at home, but got no response when I tried to run the macro. I'll
try it again at work, which is mostly where I want the macro running. I'm
also borrowing a copy of your book from a local library to see what I can
learn there. Thanks,
 
G

Gary Petersen

I'm getting a "Compile Error: User-defined type not defined error" now,
regardless of whether I comment out the On Error Resume Next statement. I
should have your book to reference tomorrow. This is much more work than I
expected it would be. Thanks for your continued help.

Gary Petersen
 
G

Gary Petersen

No, I didn't. Once I found where to do that (in the Visual Basic Editor, in
case someone else finds this later through searching), it seems to work just
fine here at home. Which pretty much guarantees it will also work on my work
laptop.

Thanks! I've been trying to get this working for a long time. I really
appreciate the help.
 
T

Tony Hoff

Thanks! This works lie a charm!


Sue Mosher said:
Nothing specific jumps out at me as a problem. Have you tried commenting out
the On Error Resume Next statement so you can see any errors as you step
through the code?

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

Curt

Your code for Euro seems it could be modifyed for my applicatio. I have used
excel & word macros yet do not understand outlook vba. I want to insert my
signature with a picture in new mail. Outlook will allow this on reply or
forward only. Need a macro that will work on new mail. Any direction
appreciated.
Thanks
Sub Euro()
Dim objDoc As Word.Document
Dim objSel As Word.Selection
On Error Resume Next
' get a Word.Selection from the open Outlook item
Set objDoc = Application.ActiveInspector.WordEditor
Set objSel = objDoc.Windows(1).Selection
' now do what you want with the Selection
objSel.TypeText "€"
Set objDoc = Nothing
Set objSel = Nothing
End Sub


Sue Mosher said:
You probably just need to modify your code so that it uses a Word.Selection
object deriveed from the Outlook item you're working with. I've posted an
example at
http://turtleflock-ol2007.spaces.live.com/blog/cns!C1013F1F9A99E3D8!579.entry
that shows how to do that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top