E-Mail mit ausgewähltem Absender in Excel
Schritt-für-Schritt-Anleitung
Um in Excel 2016 eine E-Mail mit einem ausgewählten Absender über VBA zu senden, kannst du den folgenden Code verwenden. Achte darauf, dass der Name des Absenderkontos genau so in Outlook hinterlegt ist.
Sub EmailManuellAbsenden()
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
Set .SendUsingAccount = .Session.Accounts.Item("DeinKontoName") ' Ersetze "DeinKontoName" mit dem tatsächlichen Namen
.To = "deinname@deinedomain.de"
.Subject = "Betreff"
.Body = "Ihre Nachricht."
.Display ' Öffnet die E-Mail zur manuellen Versendung
End With
End Sub
Stelle sicher, dass du die richtige Kontobezeichnung verwendest, um den Outlook absender
korrekt zu setzen.
Häufige Fehler und Lösungen
-
Fehler beim Kompilieren: Unzulässiger oder nicht ausreichend definierter Verweis
- Dieser Fehler tritt auf, wenn die Zeile
Set .SendUsingAccount = .Session.Accounts.Item("Kontoname")
außerhalb des With
-Blocks steht. Achte darauf, dass sie innerhalb des Blocks platziert ist.
-
Laufzeitfehler '5': Ungültiger Prozeduraufruf oder ungültiges Argument
- Dieser Fehler kann auftreten, wenn der angegebene Kontoname nicht existiert oder falsch geschrieben ist. Überprüfe die Kontonamen in Outlook und stelle sicher, dass sie exakt übereinstimmen.
-
Standardkonto wird verwendet
- Wenn nach der Anwendung des Codes weiterhin das Standardkonto verwendet wird, stelle sicher, dass der
sendusingaccount
korrekt gesetzt ist.
Alternative Methoden
Eine andere Möglichkeit, den Absender in Outlook zu ändern, ist die Verwendung des SentOnBehalfOfName
. Dies erlaubt dir, eine E-Mail im Namen eines anderen Absenders zu senden:
With objMail
.SentOnBehalfOfName = "anderer@deinedomain.de"
' Weitere Einstellungen wie .To, .Subject etc.
End With
Beachte, dass hierfür entsprechende Berechtigungen erforderlich sind.
Praktische Beispiele
Angenommen, du möchtest eine Serienmail versenden und die Absenderadresse ändern:
Sub SerienmailAbsenden()
Dim olApp As Object
Dim olMail As Object
Set olApp = CreateObject("Outlook.Application")
For i = 1 To 10 ' Beispiel für 10 Empfänger
Set olMail = olApp.CreateItem(0)
With olMail
Set .SendUsingAccount = .Session.Accounts.Item("DeinKontoName")
.To = "empfaenger" & i & "@deinedomain.de"
.Subject = "Betreff"
.Body = "Nachricht für Empfänger " & i
.Send ' Sendet die E-Mail direkt
End With
Next i
End Sub
Hier wird das sendusingaccount
für jeden Absender in der Schleife verwendet.
Tipps für Profis
- Debugging: Nutze die Debugging-Tools in VBA, um den Code Schritt für Schritt zu prüfen und Fehlerquellen zu identifizieren.
- Verwendung von
Option Explicit
: Füge am Anfang deines Moduls Option Explicit
hinzu, um sicherzustellen, dass alle Variablen deklariert sind, was die Fehleranfälligkeit reduziert.
- Sichere E-Mail-Adressen: Achte darauf, dass du beim Testen Platzhalter verwendest und deine echten E-Mail-Adressen nicht öffentlich machst.
FAQ: Häufige Fragen
1. Warum funktioniert SendUsingAccount
nicht bei mir?
Stelle sicher, dass du den genauen Kontonamen verwendest, wie er in Outlook angezeigt wird.
2. Kann ich SendUsingAccount
in älteren Versionen von Outlook verwenden?
Ja, SendUsingAccount
ist ab Outlook 2007 verfügbar. Du musst jedoch sicherstellen, dass dein Excel VBA Code kompatibel ist.
3. Was kann ich tun, wenn der Absender nicht geändert wird?
Überprüfe die Schreibweise des Kontonamens und stelle sicher, dass der Code im richtigen Kontext ausgeführt wird.