Veröffentlicht 11. Dezember 20186 j Hallo und guten Abend, erstmals stehe ich vor einem VBA Problem und suche hier - hoffentlich erfolgreich - Hilfe. Ich möchte mit einem VBA-Script eine Mail an Outlook zur weiteren Bearbeitung übergeben. Bis auf die Übergabe der Absender-EMailadresse funktioniert alles. Hier mein Script: Dim objOutlook As Outlook.Application Dim objMail As Outlook.MailItem Dim objAccount As Outlook.Account Set objOutlook = New Outlook.Application Set objMail = objOutlook.CreateItem(olMailItem) With objMail .objAccount = Me.Absender ' Fehler 438 Objekt unterstützt diese Eigenschaft oder Methode nicht .Recipients.ADD Empfaenger(0) If Empfaenger(1) <> "" Then .CC = Empfaenger(1) If Empfaenger(2) <> "" Then .BCC = Empfaenger(2) .Subject = Me.Subject .BodyFormat = olFormatHTML .HTMLBody = Me.Mail .Display End With An der Rot-markierten Stelle kommt der Fehler 438 und ich weiß mir keinen Rat. In Me.Absender steht die EMail-Absenderadresse als String. Vielleicht hat ja schon jemand dieses Problem gelöst - hoffe ich - und kann mir helfen? Vielen Dank im Voraus. Axel Korte
11. Dezember 20186 j Hallo, ich kenne mich mit VBA nicht aus, aber du erstellst objAccount ja als eigenes Objekt und versuchst dieses dann als Methode bzw. Eigenschaft von deinem Objekt objMail aufzurufen, wenn ich das richtig sehe. Aber objMail hat ja so gesehen erst einmal keine Verbindung mit objAccount und schon gar nicht als Eigenschaft bzw. Methode.
11. Dezember 20186 j Ich habe keine Ahnung von VBA aber musst du die objAccount Variable nicht erstmal initialisieren? Bisher deklarierst du ja nur den Typ.
11. Dezember 20186 j Der Datentyp MailItem besitzt keine Eigenschaft, die objAccount heißt. Ich nehme mal an, dass SenderEmailAddress die richtige Eigenschaft ist. https://docs.microsoft.com/de-de/office/vba/api/outlook.mailitem.senderemailaddress
11. Dezember 20186 j Autor Danke für Deine Whiz-zarD Antwort. SenderEmailAddresse ist ein schreibgeschütztes Argument und daher ungeeignet. Danke auch für die Anworten von Rienne und Gottlike. Ich verstehe was Sie meinen und versuche das morgen umzusetzen. Bearbeitet 11. Dezember 20186 j von Axel.Korte
11. Dezember 20186 j Autor Guten Abend, ich habe, dank Ihrer aller Hilfe das Problem lösen können. Hier der korrekte Code, falls jemand auf ein ähnliches Problem stößt: Dim objOutlook As Outlook.Application Dim objMail As Outlook.MailItem Dim objAccount As Outlook.Account Set objOutlook = New Outlook.Application Set objMail = objOutlook.CreateItem(olMailItem) If Me.Absender <> "" Then For Each objAccount In objOutlook.Session.Accounts If objAccount.DisplayName = Me.Absender Then Exit For Set objAccount = Nothing Next objAccount Else Set objAccount = Nothing End If With objMail If Not objAccount Is Nothing Then .SendUsingAccount = objAccount Else MsgBox "Account ''" & Absender & "'' nicht gefunden.", vbCritical, "Hinweis" End If .Recipients.ADD Empfaenger(0) If Empfaenger(1) <> "" Then .CC = Empfaenger(1) If Empfaenger(2) <> "" Then .BCC = Empfaenger(2) .Subject = Me.Subject .BodyFormat = olFormatHTML .HTMLBody = Me.Mail .Display End With Interessant ist dabei, dass in .SendUsingAccout nicht die EMail-Adresse sondern die Bezeichnung des Kontos im Outlook steht. Vielen Dank nochmals und eine besinnliche Weihnachtszeit.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.