Guten Morgen Markus,
sieht doch wesentlich besser aus und funktioniert schon ganz gut.
Schau Dir mal folgendes an:
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' ########### ThisOutlookSession ############################################################
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Option Explicit
Private mobjInspectorsClass As clsInspectors
'
Private Sub Application_Quit()
Set mobjInspectorsClass = Nothing
End Sub
Private Sub Application_Startup()
Set mobjInspectorsClass = New clsInspectors
End Sub
Sub MailOeffnen(ByVal sSubject As String, ByVal sTo As String, Optional ByVal sCC As String)
Unload UserForm1
With mobjInspectorsClass.p_olMailItem
.Subject = sSubject
'.To = ""
'.CC = ""
'.Bcc = ""
'[...]
End With
End Sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' ########### UserForm1 ############################################################
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Option Explicit
Private Sub CommandButton1_Click()
Call ThisOutlookSession.MailOeffnen("[Text1]", "An_Zeile@test.local", "optionale_CC-Zeile@test.local")
End Sub
Private Sub CommandButton2_Click()
Call ThisOutlookSession.MailOeffnen("[Text2]", "An_Zeile@test.local")
End Sub
Private Sub CommandButton3_Click()
Call ThisOutlookSession.MailOeffnen("[Text3]", "An_Zeile@test.local")
End Sub
Private Sub CommandButton4_Click()
Call ThisOutlookSession.MailOeffnen("[Text4]", "An_Zeile@test.local")
End Sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' ########### Klassenmodul: clsInspectors ############################################################
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Option Explicit
Private WithEvents mobjInspectors As Inspectors
Public p_olMailItem As Outlook.MailItem
'
Private Sub Class_Initialize()
Set mobjInspectors = Application.Inspectors
End Sub
Private Sub Class_Terminate()
Set mobjInspectors = Nothing
End Sub
Private Sub mobjInspectors_NewInspector(ByVal Inspector As Inspector)
If Inspector.CurrentItem.Class = olMail Then
Emailobjekt = Inspector.CurrentItem
UserForm1.Show
End If
End Sub
Private Property Let Emailobjekt(ByVal oNeueEmail As Outlook.MailItem)
Set p_olMailItem = oNeueEmail
End Property
Im Grunde brauchst Du das CreateObject() nicht, da Du ja bereits in Outlook bist.
Das CreateItem(olMailItem) auch nicht, denn der Inspector liefert dir ja bereits die Referenz einer neuen Mail-Klasse();
jetzt dürfte denk ich klar sein, warum es zwei Mails gibt:
Teste einfach mal n bisschen :)
|