Hallo zusammen,
folgendes Problem:
Ich möchte >1000 *.eml Dateien (von Lotus Notes) mittels VBA in Outlook2010 nach *.msg speichern.
Manuell gehe ich dabei so vor:
1. *.eml mittels drag&drop nach Outlook ziehen
2. diese dann mittels Doppelklick öffnen
3. unter "speichern unter" als *msg irgendwo speichern und
4. wieder mittels drag&drop wieder zurück nach Outlook ziehen
Bei 1000 oder mehr Emails ist das keine akzeptable Lösung.
Da ich kein Experte in VBA bin habe ich mir in verschiedenen VBA Foren den folgenden Code zusammengestellt, dieser ist noch unvollständig und soll in der ersten Instanz lediglich dazu dienen die Datei zu öffnen und anzuzeigen:
Sub GetSelectedItems()
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim mySender As Outlook.AddressEntry
Dim oMail As MailItem
Dim oAppt As Outlook.AppointmentItem
Dim oPA As Outlook.PropertyAccessor
Dim strSenderID As String
Const PR_SENT_REPRESENTING_ENTRYID As String = _
"http://schemas.microsoft.com/mapi/proptag/0x00410102"
Dim MsgTxt As String
Dim x As Long
MsgTxt = "Senders of selected items:"
Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
For x = 1 To myOlSel.Count
If myOlSel.Item(x).Class = OlObjectClass.olMail Then
' For mail item, use the SenderName property.
Set oMail = myOlSel.Item(x)
MsgTxt = MsgTxt & oMail.SenderName & ";"
'Else: myOlSel.Item(x).Class = OlObjectClass.olAppointment
' For appointment item, use the Organizer property.
' Set oAppt = myOlSel.Item(x)
' MsgTxt = MsgTxt & oAppt.Organizer & ";"
'Else
' For other items, use the property accessor to get sender ID,
' then get the address entry to display the sender name.
' Set oPA = myOlSel.Item(x).PropertyAccessor
' strSenderID = oPA.GetProperty(PR_SENT_REPRESENTING_ENTRYID)
' Set mySender = Application.Session.GetAddressEntryFromID(strSenderID)
' MsgTxt = MsgTxt & mySender.Name & ";"
End If
oMail.Display
'oMail.SaveAs "D:\test.msg", olMSG
Next x
Debug.Print MsgTxt
MsgBox (MsgTxt)
End Sub
Allerdings finde ich keinen Befehl um die *.eml Datei zu öffnen. Der Code funktioniert wenn eine *msg Datei ausgewählt ist. Die in Outlook selektierte(n) Email(s) wir geöffnet und eine MessageBox mit den Absenderinfos wird angezeigt.
Hat jemand eine Idee wie ich das lösen kann?
Danke und Gruß
Peter
|