Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Outlook starten

VBA: Outlook starten
15.10.2015 16:52:41
Dieter(Drummer)
Hi Exelianer/innen,
folgendes Makro (ist aus dem Internet) bricht mit Fehler bei "Status", ab. Wie muss es lauten, dass ich aus Excel Outlook starten kann?
  • 
    Sub Outlook_Starten()
    Status = Shell("outlook.exe", 1)
    End Sub
    


  • Mit der Bitte um Hilfe und
    Gruß, Dieter(Drummer)

    Anzeige

    6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: VBA: Outlook starten
    15.10.2015 19:24:59
    Tino
    Hallo,
    bei mir geht es so.
    Sub Outlook_Starten()
    Dim oApp As Object, Status&
    On Error Resume Next
    Set oApp = GetObject(, "Outlook.Application")
    If oApp Is Nothing Then
    Status = Shell("Outlook.exe", 1)
    Else
    MsgBox "Outlook bereits gestartet!"
    End If
    Set oApp = Nothing
    End Sub
    
    Gruß Tino

    Anzeige
    AW: Danke Tino, das klappt prima
    15.10.2015 19:48:47
    Dieter(Drummer)
    Hi Tino,
    danke für dein Makro, dass prima funktioniert und sogar mit Püfung, ob Outlook schon geöffnet ist und ich brauche nicht die komplette Pfadangabe. Prima!
    Inzwischen hatte ich auch schon eine Variante, der aber die Prüfung fehlt.
    Mein bisheriges Makro:
    Sub Outlook_Starten()
    Dim vTaskID
    vTaskID = Shell("C:\Program Files (x86)\Microsoft Office\Office14\Outlook.exe",  _
    vbMaximizedFocus)
    End Sub
    

    Danke dir und einen schönen Abend.
    Gruß, Dieter(Drummer)

    Anzeige
    AW: VBA: Outlook starten
    20.10.2015 12:53:43
    wernernico
    Hallo,
    als Zusatz zu der o.g. Frage habe ich nun noch eine weiteres Detailproblem. Ich möchte Outlook gerne versteckt starten, d.h minimiert ohne Fokus. Leider funktionieren sowohl "6" als auch "vbMinimizedNoFocus" als Argumente für die Shellanweisung nicht. Hat jemand eine Idee wie man Outlook "klein" bekommt?
    Danke

    Anzeige
    AW: VBA: Outlook starten
    20.10.2015 15:01:18
    Tino
    Hallo,
    das Outlook minimiert startet geht bei mir auch nicht.
    Wir könnten es aber nachträglich minimieren.
    Versuch mal so
    Sub Outlook_Starten()
    Dim oApp As Object
    On Error Resume Next
    Set oApp = GetObject(, "Outlook.Application")
    If oApp Is Nothing Then
    Shell "Outlook.exe", 1
    DoEvents: Application.Wait Now + TimeSerial(0, 0, 1)
    Set oApp = GetObject(, "Outlook.Application")
    Do While oApp.ActiveWindow.WindowState  1
    oApp.ActiveExplorer.Display
    oApp.ActiveWindow.WindowState = 1
    Loop
    Else
    MsgBox "Outlook bereits gestartet!"
    End If
    Set oApp = Nothing
    End Sub
    
    Gruß Tino

    Anzeige
    AW: VBA: Outlook starten
    20.10.2015 17:45:55
    wernernico
    Hallo Tino,
    danke für die rasche Antwort. Dein Lösungsvorschlag hat mich af eine Spur zur Kernursache gebracht.
    Bei Ausführung des Codes hängt dieser sich in der while Schleife auf, was mich auf den Gedanken brachte, dass das Problem in der Ansprache bzw. Verwaltung der Fenster liegt. Zur Info, die ganze Klamotte läuft in einer Citrix Umgebung.
    Weiter in der Forschung. Die Beobachtung des Wertes für Active.Window bleibt auf dem Wert für das Excelfenster, obwohl Outlook im Vordergrund ist und aktiv ist. Offensichtlich ist durch Citrix die Übergabe der Werte gestört, da auf meinem lokalen Computer alles normal funzt. Ich werde mich mal mit unseren Citrix Bastlern unterhalten, wie das gelöst werden kann.
    Nicolaus

    Anzeige
    AW: VBA: Outlook starten
    20.10.2015 18:44:34
    Tino
    Hallo,
    bei mir startet Outlook unter Windows 7 auch immer nicht minimiert.
    Muss also nicht unbedingt an Citrix liegen
    Gruß Tino
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Outlook mit VBA aus Excel starten


    Schritt-für-Schritt-Anleitung

    Um Outlook mit VBA aus Excel zu öffnen, kannst Du das folgende Makro verwenden. Es prüft zuerst, ob Outlook bereits geöffnet ist, und startet es nur, wenn dies nicht der Fall ist.

    Sub Outlook_Starten()
        Dim oApp As Object
        On Error Resume Next
        Set oApp = GetObject(, "Outlook.Application")
        If oApp Is Nothing Then
            Shell "Outlook.exe", 1
        Else
            MsgBox "Outlook bereits gestartet!"
        End If
        Set oApp = Nothing
    End Sub

    Füge dieses Makro in ein neues Modul in Excel ein, um es auszuführen. Es verwendet die Shell-Funktion, um Outlook zu starten.


    Häufige Fehler und Lösungen

    • Outlook öffnet nicht: Stelle sicher, dass der Pfad zu Outlook.exe korrekt ist. Wenn Du eine andere Office-Version hast, könnte der Pfad anders sein.

    • Excel startet minimiert: Um dies zu verhindern, kannst Du das Argument in der Shell-Funktion anpassen, um sicherzustellen, dass Outlook im Vordergrund startet.

    • Fehler beim Zugriff auf Outlook: Wenn Du in einer Citrix-Umgebung arbeitest, kann es zu Problemen bei der Fensterverwaltung kommen. In diesem Fall solltest Du die Einstellungen mit Deinem IT-Team überprüfen.


    Alternative Methoden

    Eine andere Möglichkeit, Outlook zu öffnen, besteht darin, direkt über die CreateObject-Methode zu arbeiten. Dies kann nützlich sein, wenn Du mehr Kontrolle über die Outlook-Anwendung benötigst:

    Sub Outlook_Öffnen()
        Dim outlookApp As Object
        Set outlookApp = CreateObject("Outlook.Application")
        outlookApp.Visible = True ' Outlook sichtbar machen
    End Sub

    Mit dieser Methode kannst Du auch weitere Funktionen von Outlook integrieren, wie das Versenden von E-Mails oder das Erstellen von Terminen.


    Praktische Beispiele

    Hier sind einige nützliche Beispiele, die Dir helfen, Outlook mit VBA effizient zu verwenden:

    1. E-Mail senden:
    Sub Email_Senden()
        Dim outlookApp As Object
        Set outlookApp = CreateObject("Outlook.Application")
        Dim email As Object
        Set email = outlookApp.CreateItem(0) ' 0 steht für eine neue E-Mail
        email.Subject = "Betreff der E-Mail"
        email.Body = "Inhalt der E-Mail."
        email.To = "empfaenger@example.com"
        email.Send
    End Sub
    1. Outlook im Hintergrund starten:
    Sub Outlook_Hintergrund_Starten()
        Dim oApp As Object
        On Error Resume Next
        Set oApp = GetObject(, "Outlook.Application")
        If oApp Is Nothing Then
            Shell "Outlook.exe", vbHide ' Outlook im Hintergrund
        Else
            MsgBox "Outlook bereits gestartet!"
        End If
        Set oApp = Nothing
    End Sub

    Tipps für Profis

    • Verwende DoEvents und Application.Wait, um sicherzustellen, dass Outlook vollständig geladen ist, bevor Du mit weiteren Aktionen fortfährst.

    • Wenn Du Outlook minimiert starten möchtest, kannst Du es nach dem Start wieder minimieren:

    oApp.ActiveWindow.WindowState = 2 ' 2 steht für minimiert
    • Halte Deinen VBA-Code modular und gut dokumentiert, um die Wartung zu erleichtern, besonders wenn Du komplexe Automatisierungen mit Outlook planst.

    FAQ: Häufige Fragen

    1. Wie kann ich sicherstellen, dass Outlook immer im Vordergrund geöffnet wird?
    Du kannst die WindowState-Eigenschaft verwenden, um das Fenster in den Vordergrund zu bringen.

    2. Was kann ich tun, wenn Outlook beim Starten nicht reagiert?
    Überprüfe, ob andere Programme, insbesondere in einer Citrix-Umgebung, die Ausführung von Outlook beeinträchtigen. Eventuell kann ein IT-Support helfen.

    3. Kann ich Outlook auch ohne GUI starten?
    Ja, Du kannst Outlook im Hintergrund starten und mit VBA-Programmierbefehlen interagieren, ohne dass die Benutzeroberfläche sichtbar ist.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige