View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Dick Kusleika[_3_] Dick Kusleika[_3_] is offline
external usenet poster
 
Posts: 599
Default import email from Outlook

Ron

On which line?

If it was this one

Set mi = fldr.Items(78)

then you may not have 78 emails in your inbox. You need to set mi equal to
the email that you want. For tips on this see

http://www.dicks-clicks.com/excel/olRetrieving.htm

This sub takes the body from the email and parses into lines on a sheet.
Having the body in A1, doesn't matter, because it's not taking the body from
the worksheet, rather, straight from the email.

Post back if that doesn't answer your question.

--
Dick Kusleika
MVP - Excel
www.dicks-clicks.com
Post all replies to the newsgroup.

"Ron" wrote in message
...
Dick,

In XP and with the body of the email in cell "AI" I tried the
"emaillines" sub but ran into "Run-time error '-2147352567
(80020009)':

Array index out of bounds."

How to fix please.

TIA

Ron

On Wed, 12 Nov 2003 08:13:28 -0600, "Dick Kusleika"
wrote:

charelke

The Body property is just a string, so you can manipulate it like any

other
stirng. Here's an example

Sub emaillines()

Dim ol As Outlook.Application
Dim ns As Outlook.NameSpace
Dim fldr As Outlook.MAPIFolder
Dim mi As Outlook.MailItem
Dim stBody As String
Dim LineBreak As Long
Dim i As Long

Set ol = New Outlook.Application
Set ns = ol.GetNamespace("MAPI")
Set fldr = ns.GetDefaultFolder(olFolderInbox)
Set mi = fldr.Items(78)

stBody = mi.Body
LineBreak = 1
i = 1

Do
ActiveSheet.Cells(i, 1).Value = _
Mid(stBody, LineBreak, InStr(LineBreak, stBody, Chr(10)) -
LineBreak)
LineBreak = InStr(LineBreak + 1, stBody, Chr(10)) + 1
i = i + 1
Loop Until LineBreak = 0 Or LineBreak Len(stBody)

End Sub