Printing First Page of Email in Outlook

I print out my email. No, I’m not one of the Luddites that prints out every email (or has his secretary do it) because he doesn’t understand how to work his email machine. My system for organization is loosely based on Getting Things Done and its derivative 43 Folders. Everything I have to do is represented by at least one piece of paper. So don’t try to convince me to quit printing my email, because it’s not going to happen.

If I get an email that requires some action in the future, I need one of these pieces of paper to represent that future action. Until recently, I would print the email to serve that purpose. As you already know, email can get quite long and that means I can end up with 10 sheets of paper where I only needed one. When you deal with accountants and lawyers, it’s even worse because each of their messages in the thread has a page of disclaimers. Oddly, Outlook’s print dialog doesn’t let you specify a page range. There are some work arounds, but none of them are suitable for me. I read all my email in plain text and I reply in plain text (HTML is for web pages, not email). Since I’m using plain text, I use Outlook’s built-in email editor rather than Word.

After I printed seven pages of an email today, I decided to finally write some code. I put a button on my new email commandbar and hooked it up to this procedure:

Sub PrintOnePage()
    Dim mi As MailItem
    Dim sBody As String
    Dim wdApp As Word.Application
    Const sORIG As String = “> —–Original Message—–“
    If TypeName(Application.ActiveInspector.CurrentItem) = “MailItem” Then ‘only mail
       ‘create a forward to get the header
       Set mi = Application.ActiveInspector.CurrentItem.Forward
        sBody = mi.Body
        sBody = Mid(sBody, InStr(1, sBody, sORIG), 5000) ‘Remove inserted signature
       Set wdApp = New Word.Application
        With wdApp.Documents.Add
            .Range.Text = sBody
            .PageSetup.LeftMargin = 18 ‘.25″
           .PageSetup.RightMargin = 18
            .PageSetup.TopMargin = 18
            .PrintOut False, False, wdPrintFromTo, “”, “1”, “1”
        End With
        wdApp.Quit False ‘don’t save changes
       Set wdApp = Nothing
        mi.Close olDiscard ‘don’t save changes
       Set mi = Nothing
    End If
End Sub

I didn’t want to automate Word to do this, but I struggled with other options to limit it to one page. I know that printing out of Outlook puts 60 lines on the first page. However, when I tried to limit the text to the first 60 vbNewLine’s, it didn’t quite work out. I started to think that maybe Outlook doesn’t put a vbNewLine after each line, but rather after each paragraph. I’m still not sure why that didn’t work. So I resigned to automate Word and use it’s page range feature to limit the print out.

I limit this to MailItems although it may work on other objects. I didn’t want to test it. The MailItem I work with is a forwarded copy of the original. When I forward an email it puts the header information at the top of each email in the thread, so I get some needed information on my print out. Unfortunately, it also puts my signature in there, so I have to strip that part out by starting the string at the Original Message part. And I limit the string to 5,000 because that should be more than one page and there’s no need to transfer more than that.

I kept getting a type mismatch error when using Word’s PrintOut method. At first I thought it was because I was omitting optional arguments, but that really shouldn’t be the case when I’m early binding. I seem to remember a problem with optional arguments using late binding – specifically that you have to include all optional arguments up until the one you want to include, then none after that. But I was still getting the error. Inexplicably, Word wants Strings for page numbers. You’ll notice that my page numbers are in quotes.

Finally, I close Word without saving changes and discard the forwarded copy of the email.

Posted in Uncategorized

17 thoughts on “Printing First Page of Email in Outlook

  1. Probably this isn’t too efficient, but I don’t print out too many emails. If I have a long one that I only want the first page or two, I print to my PDF driver (PDFCreator), then print out what I want from the PDF file, then kill the PDF file.

  2. In Outlook 2007 (I’ve forgotten if this is available in 2003), under Other Actions, I just Edit Message, delete what I don’t want, print, then exit without saving.

  3. In Outlook, when you open the message, click file, then print, there is an option to note a page range. The Default is 1 for the first page only. No scripting involved.

  4. Paul: That’s better because I include all the relevant information and none of the header type stuff. It’s just too time consuming though.

    Jakeu1701: Not if you read email in plain text. I don’t know if I can switch to HTML programmatically, but I know I can’t specify a page range in the PrintOut method in Outlook.

  5. I am a Chartered Accountant in practice and the ICAEW expects us to have hard copies of “important” emails on file. After I converted to Outlook 2007 a few months ago I found that this feature, although seemingly available in the print box does not work as I started getting huge printouts. I thought I had made a mistake. After consulting Simon Hurst (The Knowledge Base) I found that it was working correctly and there was no workaround in Outlook. I emailed Simon Jones (PcPro) and Alan Stevens (PCW) and they kindly researched it and one of them found that Microsoft considers this an enhancement and have no intention of fixing or enabling it. The easiest solution, for the non IT literate such as me and my staff seems to be to use the Blueprint add-in but that should be paid for as is a commercial product.
    I dread to think how many pages/tons of paper will be wasted as more people move to Outlook 2007 and find this useful environmentally friendly feature has gone.

  6. In Office 2007 Pro where they include OneNote, it is excellent Content Management, such as saving (electronic printing) and archiving E-mails, with other same topic items. One just Right Clicks on the E-mail item, and at the bottom of context menu there is a selection for [Send to OneNote], clicking on it sends it to OneNote, the application activates, and then the e-mail can be moved to the appropriate category. The parts I don’t want, they just get deleted. Saves a lot of paper.

    OneNote seems to be an app that MS may have done well on, for Content Management anyway. Working in an institution where others have File Cabinets full of paper, I have, maybe, half of a drawer, and everything in OneNote is searchable.

  7. Maybe a bit besides the point but you could also try to educate the accountants and lawyers. It’s a VERY good idea to use a signature separator, preferably the commonly used ‘dash dash space’ (– ). You need to put this on a line of its own before the signature. A good email program will than leave out the previous signature if you’re replying to a message. This saves a ton of space in your email database and mailserver archives.

  8. Nothing concrete to add (the joys of posting to old threads!), except to say I agree with your opinion of HTML (and RTF when it comes to emails). Plain text is the way to go. I’ve added the Edit Message button to my toolbar especially for removing those darn disclaimers before I print.

    FWIW, my only hard-won (alright, Googled) tip for Outlook macros relates to attachments: if you have to loop through multiple attachments on an email make sure your loop counts DOWN and not up. In Outlook 2003 (and possibly others) the counter can get very confused otherwise.

  9. [i]So don’t try to convince me to quit printing my email, because it’s not going to happen.[/i]

    Hey Dick! Quit printing your e-mails.

    Seriously, like you, I use the GTD system, and I used to use paper with 43 folders. That all changed once I started using the ClearContext add-in for Outlook. It does all those things you like to do with your pieces of paper, and more. It sets ticklers, associates e-mails with related tasks and appointments, files the e-mails into folders, prioritizes e-mails based on just about any factor you want to use, and more. It also has a “dashboard” view that makes your Weekly Review much less painful. You can use its tags in addition to your @context categories, too.

    I’ve tried lots of Outlook add-ins over the years, and they usually stink. Often, they don’t play well with other add-ins, or Outlook itself. ClearContext is well written, and I haven’t had any problems with it.

    I’ll also give a thumb’s up to OneNote, like Ron did. OneNote now integrates with Outlook very well, especially when it comes to tasks, contacts and appointments.


    Pretty cool. It has a lot more features than I would have guessed. I use OneNote every day and I like it. In fact, if I have a lot of background information that I need to write on my plain white paper, I’ll start a page in ON, type it up, and print it out. Then when the task is done, I’ll scan my paper into ON for history sake. I tried to use ON in place of actual paper, but it wasn’t the same. There’s something about being able to touch the paper that makes the system work better for me. I’m not sure what it is, but I wish I knew so I could get over it.

    So my question to you is: When you switched to ClearContext, was there something missing not having paper around?

  11. Well, I felt a little naked at first, without the paper. I had to put more reliance on Outlook, which was a bit of a leap, but it worked out in the end. My first hurdle was portability. If you’re really mobile, you already have a system to carry the papers you need with you. Once you are Outlook-based, you either need a laptop or a good smartphone that can handle Outlook synchronization. My main PC is a desktop, not a laptop, so I had to be sure that my phone could carry the info I needed. I have an old Treo 650, running the Palm OS. The built-in apps didn’t carryover enough of my categories, so I ended up getting third-party software to do the job. It works well.

    The other advantage that paper has is the ability to quickly clip/staple a document to another piece of paper. So, you can clip a relevant article to the e-mail printout that’s acting as your action item in your folder system. To do that electronically, you need to have a good scanner, and either embed a link to the task in Outlook or, better yet, use OneNote to associate them. The integration of Outlook and OneNote is good enough now that you can create the task item in either place, and keep all the background info you need in the OneNote pages for that item. There will be a link in the Outlook task to take you to the OneNote page, as well as a link on the OneNote page to take you to the Outlook task. It sounds a bit kludgy but, again, it works well.

    So, I use Outlook with ClearContext as the basis of my GTD system. It gives me the overview of all my action items and takes care of the mechanics of the GTD system. I use OneNote for the details on particular action items, and for project overviews.

    The ClearContext site has articles and slide shows detailing how to use ClearContext for GTD. If you decide to try it, I recommend looking at those.

    Anybody using Xobni?

  12. Its amusing to see the weird and wonderful workarounds that people come up with, but really folks, isnt the point here that it is an UTTERLY UNFORGIVABLE oversight by the so called interface designers at Microsoft to fail to put in a simple page range function inside Outlook?

    After all this feature is available in almost all other applications – yet they have never bothered to include it in Outlook despite numerous opportunities. Why? Answer: laziness / no attention to detail.

    I use both mac and PC in my work and its these kind of bugbears that Mac users do not have to put up with because someone has taken time to consider what people are likely to want to do with their applications before actually starting to design the interface.

    A lot of PC users think they use the best software simply becuase its homogenous and they dont know anything better. But guess what, its actually a lot more fun to be getting on with your work than spending half your time trying to fix basic deficiencies in Microsoft designed programs that are basically “inadequate” for the purpose.

    Outlook isnt the worst offender but it has many poor aspects, and this is one of them. I reccomend installing XOBNI, which makes it a lot more usable. How very telling that MS have just bought Xobni, as they were too lazy/incapable to develop the usable functions themselves.

    I know this is an age old rant, but really guyss – its 2008, computing shouldn’t have to be such a battle!!

    Happy email printing – enjoy those 3 classic Outlook options: “Print All”, “print Odd” and “print Even”.

    Hmm… useful!

  13. The pagenumbers probably need to be strings for one of the other options, where you specify “1,3,4,6? if you want to print only those pages.

  14. My office has been grappling with this problem sinve we moved to Office 2007. We delelop long e-mail chains but often just need to print the first page (or two).

    Paul Hollinger’s solution above is so simle and just what we want – provided folk hit “no” and not “yes” at the end.


  15. Double click the email to open it in the Viewer.
    Select Other Actions > View in Browser
    Once it opens in IE, you can then print off which ever page you need.

    I can only think that leaving out the Print What selection was an oversight as Outlook recognises paging and lets you select Odd Or Even pages to print.

    If the email is only 2 pages long, you can choose to print ODD pages and only page 1 prints.

  16. I realize this doesn’t solve the printing issue, but it could solve your issue of how you are managing the “action items.”

    Inbox: Shit that needs to be done.
    Deleted Items: Shit that is done or didn’t need to be done.

    Then you can simply look at your inbox and know it’s an action item (or a possible unread action item.)

    If people learned to manage their mailbox a little better they would see that printing it out is entirely unecessary.

Posting code? Use <pre> tags for VBA and <code> tags for inline.

Leave a Reply

Your email address will not be published.