Vinzenz Mai: VBA - SendMail() funktioniert nicht

Beitrag lesen

Hallo

Wenn ich manuell über Datei/Senden an/Email-Epfänger gehe funktioniert der Spaß übrigens; daran dass "Outlook Express" kein echter MAPI E-Mail-Client ist, kann es also doch nicht liegen, oder?

ja, doch, sicher, siehe mein Archivposting.

Mit deinem Code bekomme ich die gleiche Fehlermeldung :-(

sag' ich doch. Schrieb' ich doch. Steht überall groß MAPI dabei

Was gibt Dir

debug.print Me.Application.MailSystem

im Direktbereich aus?
Es gibt drei Konstanten:

xlNoMailSystem
xlMAPI
xlPowerTalk

Wenn Du xlNoMailSystem erhältst (bei meinem Excel 2007 wäre das der Wert 0),
dann hast Du kein verwendbares Mailsystem - so einfach ist das.

Folgender Code (im Modul des Workbook-Objektes) sollte es tun:

Public Sub MapiSendMail()
    Dim xlWB As Workbook

On Error GoTo Err_Sub

' Überprüfe das vorhandene Mailsystem
    ' Mailversand ist nur mit MAPI möglich
    ' Mailversand ist nur mit MAPI möglich
    ' Mailversand ist nur mit MAPI möglich
    ' Mailversand ist nur mit MAPI möglich
    ' Mailversand ist nur mit MAPI möglich

Select Case Me.Application.MailSystem
    Case xlNoMailSystem
        MsgBox "Kein verwendbares Mailsystem vorhanden"
        Exit Sub
    Case xlPowerTalk
        MsgBox "Entsorgen Sie Ihren Mac, kaufen Sie sich einen PC :-)"
        ' In diesem Fall müsste man die Methode SendMailer verwenden
        Exit Sub
    Case xlMAPI
        MsgBox "Wunderbar, Mailversand über MAPI geht."
    Case Else
        MsgBox "Du bist mir unbekannt, ich kann Dich nicht nutzen"
        Exit Sub
    End Select

' Kopiere das aktuelle Tabellenblatt in eine neue Arbeitsmapppe
    Me.ActiveSheet.Copy

' Greife auf diese neue Arbeitsmappe
    Set xlWB = ActiveWorkbook

' Versende Mail über MAPI - Bestätigung typischerweise erforderlich :-)
    ' Anlage enthält eine Excel-Mappe Mappe<nr>.xls mit dem aktuellen Blatt
    ' Mailbody ist leer - beste Voraussetzungen, um als Spam klassifiziert
    ' zu werden.
    xlWB.SendMail "max.mustermann@example.org", "Hier der Betreff"

' Schließe die Datei, ohne Änderungen zu speichern
    xlWB.Close False

' Gebe Ressourcen frei
    Set xlWB = Nothing

Exit Sub

Err_Sub:
    ' Primitive nichtfunktionale Fehler-"behandlung"
    MsgBox Err.Number & vbCrLf & Err.Description
    Exit Sub

End Sub

Bitte beachte: Bei dieser Prozedur gilt:

' Mailversand ist nur mit MAPI möglich
    ' Mailversand ist nur mit MAPI möglich
    ' Mailversand ist nur mit MAPI möglich

Freundliche Grüße

Vinzenz