Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Application Outlook

Application Outlook
Andreas
Hallo,
ich bekommen bei diesem VBA-Code immer eine Debuggen Fehlermeldung!
Und zwar bei der Zeile 'Anwendung Outlook starten'.
Hat sich in Excel 2010 was geändert?
Vielen Dank im voraus
Sub EMailZusammensetzen()
Dim appOutlook As Outlook.Application
Dim MailItem As Outlook.MailItem
' Anwendung Outlook starten
Set appOutlook = CreateObject("Outlook.Application")
' E-Mail erstellen
Set MailItem = appOutlook.CreateItem(olMailItem)
' Eigenschaften hinzufügen
MailItem.To = "max.muster@test.de"
MailItem.Subject = "Test"
MailItem.Body = "Hallo" & vbCrLf & "Welt"
' Anhang hinzufügen
On Error GoTo Fehler
MailItem.Attachments.Add "C:\Temp\test1.jpg"
' E-Mail senden
MailItem.Send
' Anwendung Outlook beenden
appOutlook.Quit
Exit Sub
Fehler:
MsgBox Err.Description
appOutlook.Quit
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Application Outlook
26.01.2011 03:55:19
mumpel
Hallo!
1. Hast Du einen Verweis auf die "Microsoft Outlook 14.0 Object Libraray" gesetzt? Dieser ist bei Deinem Code (Early-Binding) erforderlich.
2. "appOutlook.Quit" ist überflüssig.
3. Mit folgendem angepassten Code ist der Verweis überflüssig (Late-Bonding).
Gruß, René
AW: Application Outlook
29.01.2011 12:42:14
Andreas
Hallo,
bekomme aber immer noch den Laufzeitfehler "Objekterstellung durch ActiveX Komponenten nicht möglich.
"Microsoft Outlook 14.0 Object Libraray" ist gesetzt.
Sub EMailZusammensetzen()
Dim olApp As Object
Dim AWS As String
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.To = "max.muster@test.de"
.Subject = "Test"
.Body = "Hallo" & vbCrLf & "Welt"
.Attachments.Add "C:\Temp\test1.jpg"
.Send
End With
End Sub

Anzeige
AW: Application Outlook
29.01.2011 13:12:11
mumpel
Hast Du Outlook installiert? Die Fehlermeldung deutet darauf hin, dass Outlook nicht installiert ist. Du hast doch nicht etwa die Click-to-Run (C2R, zu Deutsch: Klicken-Und-Los) installiert? Dann schleunigst deinstallieren und ein echtes Office installiert.
Über C2R-Backup-Medium bekommst Du ein Backup, welches wie ein normales Office installiert wird. C2R wird nur virtuell installiert, aus diesem Grund findet VBA das Outlook nicht bzw. VBA hat aufgrund der Virtualisierung Probleme mit dem Zugriff auf Programme der C2R.
Solltest Du ein normales Office installiert haben, dann solltest Du prüfen ob alle ActiveX-Steuerdateien aktiviert sind. Hin und wieder kommt es nämlich vor, dass beim monatlichen Sicherheitsupdate einige Steuerdateien deaktiviert werden (Stichwort Killbits). Prüfen kannst Du das mit dem "ActiveX Compatibility Manager". Siehe auch Fehler beim Kompilieren.....Zuerst den ACM herunterladen und dann die Deutsche Sprachdatei. Beides in einen gemeinsamen Ordner entpacken und dann die "acm exe" starten.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Outlook-Anwendung mit VBA in Excel verwenden


Schritt-für-Schritt-Anleitung

Um mit VBA in Excel eine E-Mail über Outlook zu erstellen, kannst du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub EMailZusammensetzen()
       Dim appOutlook As Object
       Dim MailItem As Object
    
       ' Anwendung Outlook starten
       Set appOutlook = CreateObject("Outlook.Application")
    
       ' E-Mail erstellen
       Set MailItem = appOutlook.CreateItem(0) ' olMailItem
    
       ' Eigenschaften hinzufügen
       MailItem.To = "max.muster@test.de"
       MailItem.Subject = "Test"
       MailItem.Body = "Hallo" & vbCrLf & "Welt"
    
       ' Anhang hinzufügen (optional)
       On Error Resume Next
       MailItem.Attachments.Add "C:\Temp\test1.jpg"
    
       ' E-Mail senden
       MailItem.Send
    
       ' Anwendung Outlook beenden
       appOutlook.Quit
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle EMailZusammensetzen und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Objekterstellung durch ActiveX-Komponenten nicht möglich."

    • Lösung: Stelle sicher, dass Outlook installiert ist und keine Click-to-Run-Version verwendet wird. Diese kann Probleme mit VBA verursachen. Nutze stattdessen eine normale Installation.
  • Fehler: "Microsoft Outlook 14.0 Object Library" ist nicht gesetzt.

    • Lösung: Wenn du Early Binding verwendest, setze den Verweis auf die "Microsoft Outlook 14.0 Object Library" über Extras > Verweise im VBA-Editor.
  • Überflüssige Zeile appOutlook.Quit.

    • Lösung: Entferne diese Zeile, da sie nicht notwendig ist, wenn du das Objekt nicht mehr verwendest.

Alternative Methoden

Wenn du ein einfacheres Skript verwenden möchtest oder keine Verweise setzen möchtest, kannst du Late Binding verwenden. Hier ist ein Beispiel:

Sub EMailZusammensetzen()
    Dim olApp As Object
    Set olApp = CreateObject("Outlook.Application")
    With olApp.CreateItem(0) ' olMailItem
        .To = "max.muster@test.de"
        .Subject = "Test"
        .Body = "Hallo" & vbCrLf & "Welt"
        .Attachments.Add "C:\Temp\test1.jpg"
        .Send
    End With
End Sub

Praktische Beispiele

  • E-Mail mit CC und BCC:

    MailItem.CC = "cc@example.com"
    MailItem.BCC = "bcc@example.com"
  • E-Mail mit HTML-Format:

    MailItem.BodyFormat = 2 ' olFormatHTML
    MailItem.HTMLBody = "<h1>Hallo Welt</h1>"

Tipps für Profis

  • Fehlerbehandlung: Verwende On Error GoTo für eine bessere Fehlerverfolgung in deinem Code.
  • Sicherheit: Stelle sicher, dass das Senden von E-Mails über VBA in deiner Unternehmensumgebung erlaubt ist.
  • Verwende With-Blöcke: Dadurch wird der Code lesbarer und du musst nicht ständig das Objekt wiederholen.

FAQ: Häufige Fragen

1. Wie kann ich Outlook ohne Verweis verwenden? Wenn du die CreateObject("Outlook.Application") Methode verwendest, benötigst du keinen Verweis auf die Outlook-Bibliothek.

2. Kann ich mehrere E-Mails gleichzeitig senden? Ja, indem du eine Schleife über eine Liste von Empfängern implementierst und für jeden Empfänger eine neue E-Mail erstellst.

3. Was ist der Unterschied zwischen Early und Late Binding? Early Binding erfordert einen Verweis auf die Bibliothek und ermöglicht die Nutzung von IntelliSense, während Late Binding flexibler ist, aber keine IntelliSense-Funktionen bietet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige