Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Outlook per Makro aus Excel öffnen
17.08.2023 10:03:26
Clemens
Hallo,

seit einiger Zeit beschäftige ich mich mit VBA, auch wenn es durch private Gründe nur langsam vorangeht. Etwas mitnehmen konnte ich aus dem Forum auch - danke dafür :)

Jetzt habe ich eine Frage: Ich möchte Outlook aus Excel heraus öffnen, wobei ein markierter Bereich kopiert werden soll und in eine neue E-Mail eingefügt werden soll. In der Mail soll auch ein Standardtext hinterlegt sein. Das wäre bis jetzt mein Code:

Sub E_Mail_generieren()

'

' E_Mail_generieren Makro
' Generiert eine E-Mail mit einem Standardtext.
'
' Tastenkombination: Strg+Umschalt+M
'

Selection.Copy

Dim appO As Object

Set appO = CreateObject("Outlook.Application")


End Sub


Leider öffnet sich Outlook schon nicht. Outlook.Application.Visible = True funktioniert auch nicht (Laufzeitfehler 438, Objekt nicht unterstützt - ist in Verweisen jedoch aktiviert)

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook per Makro aus Excel öffnen
17.08.2023 10:27:21
JoWE
Hallo Clemens,

versuch's mal so:
Option Explicit


Sub Mail_plus_xlBereich()
'Using Late Binding
Dim OutApp As Object
Dim OutMail As Object
Dim wEditor As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
ActiveSheet.Range("A1:B3").Copy
With OutMail
.body = "Hallo," & vbNewLine & "hier kommt eine Beispiel-Email"
.Subject = "Beispiel-Excel-Tabelle"
.To = "DeinEmpfaenger@web.de" 'hier Ersetzen mit Deinem Wunschenmpfänger
.Display 'Mail vorm versenden zeigen
'internen Editor starten
Set wEditor = OutApp.ActiveInspector.WordEditor
OutApp.ActiveWindow.Activate 'Enable email window for pasting
'den kopierten Bereich in den Mail-Text einfügen
wEditor.Application.Selection.PasteSpecial xlPasteValues
End With
'OutMail.Send 'aktivieren um tatsächlich zu senden
Set wEditor = Nothing
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Du hättest allerdings auch einfach mal googlen können :-))
Mit Deiner Überschrift kommt da jede Menge an Infos!!!

Gruß
Jochen
Anzeige
Outlook per Makro aus Excel öffnen
17.08.2023 11:42:39
Clemens
Hallo Jochen, ich danke dir! Ich probiere es dann gleich aus.

Ich habe gegoogelt, jedoch hat nichts so richtig geholfen. Deswegen habe ich das gleich als Anstoß genommen mich endlich anzumelden :)

Ich habe jetzt folgenden Code:

Sub E_Mail_generieren()

'

' E_Mail_generieren Makro
' Generiert eine E-Mail mit einem Standardtext.
'
' Tastenkombination: Strg+Umschalt+M
'

Selection.Copy

Shell "OUTLOOK.EXE", vbMaximizedFocus

Dim MailItem As Outlook.MailItem

Set MailItem = appOutlook.CreateItem(olMailItem)
MailItem.Body = "Hallo," & vbCrLf & "anbei die neuen Ausgänge:"

End Sub


Leider öffnet sich damit immer noch keine Mail, jedoch wenigstens das Programm.
Anzeige
Outlook per Makro aus Excel öffnen
17.08.2023 11:45:36
Clemens
Hallo Jochen,

hier kommt ein Laufzeitfehler (462). Der Remote Server Computer existiert nicht oder ist nicht verfügbar.

Danke trotzdem. Ich habe langsam das Gefühl das es an einer Einstellung am Programm selber liegt.

Grüße

Clemens
Outlook per Makro aus Excel öffnen
17.08.2023 13:50:20
Clemens
Also der Code funktioniert zumindest schon mal und es öffnet sich eine neue Mail - danke!

Allerdings wird die kopierte Tabelle vor den Text kopiert. Dazu fehlt noch meine Signatur, obwohl diese für neue Mails standardmäßig eingestellt ist.

Kannst du mir noch folgende Zeilen erläutern:
Set wEditor = OutApp.ActiveInspector.WordEditor
OutApp.ActiveWindow.Activate
wEditor.Application.Selection.PasteSpecial xlPasteValues

Damit kann ich vom Verständnis her wenig anfangen.

Gruß

Clemens
Anzeige
AW: Outlook per Makro aus Excel öffnen
17.08.2023 16:37:23
JoWE
Hallo Clemens,

eigentlich hatte ich vorausgesetzt, Du würdest vielleicht auch einfach selbst etwas herumprobieren.
Da scheint Dir wohl leider nicht danach gewesen zu sein??
Nun, hier die Änderung, damit der eingefügte Tabellenbereich unter dem Text erscheint.
Ich habe einige Kommentare eingefügt, die sollten zu Erläuterung ausreichen :-)
Aber das lässt sich auch alles ergooglen :-))

Option Explicit


Sub Mail_plus_xlBereich()
' ****Using Late Binding
Dim OutApp As Object
Dim OutMail As Object
Dim wEditor As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
ActiveSheet.Range("A1:B5").Copy
With OutMail
.Body = "Hallo," & vbNewLine & "hier kommt eine Beispiel-Email: "
.Subject = "Beispiel-Excel-Tabelle"
.To = "DeinEmpfaenger@web.de" 'hier Ersetzen mit Deinem Wunschenmpfänger
' **** Nachricht zur Kontrolle anzeigen
.Display 'Mail vorm versenden zeigen
' **** internen Editor starten (um im Body zu schreiben zu können 'bedarf es des internen WordEditors von Outlook)
Set wEditor = OutApp.ActiveInspector.WordEditor
' **** der Edior ist gestartet, jetzt das das Email-Objekt aktivieren
OutApp.ActiveWindow.Activate
'hinter dem Body-Text Platz schaffen
wEditor.Application.Selection.Move Unit:=6, Count:=2
'jetzt den kopierten Bereich der Excel-Tabelle einfügen
wEditor.Application.Selection.PasteSpecial xlPasteValues
wEditor.Application.Selection.typeText "Tschüss und liebe Grüße," & vbNewLine & "Dein AbsenderName"

End With
'.OutMail.Send 'aktivieren (hochkomma wegmachen!) um tatsächlich zu senden
Set wEditor = Nothing
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Gruß
Jochen
Anzeige
Outlook per Makro aus Excel öffnen
17.08.2023 18:45:28
Clemens
Ich habe etwas probiert, aber nicht so wirklich eine Lösung gefunden - und arbeiten musste ich ja auch noch :)
Ich muss mir das auch langsam erarbeiten, deswegen bin ich für die Kommentare dankbar. Viele ist auch in der Google-Suche dann auch nicht so schlüssig, wie z. B. der "Inspector".

Bin mit meinem Buch auch noch nicht so weit und durch ein nebenberufliches Studium wird das auch nicht so schnell gehen.

Danke auf jeden Fall. Ich schaue mir das in Ruhe an. Funktioniert auf jeden Fall!

Gruß

Clemens
AW: Gerne
17.08.2023 18:59:52
JoWE
Alles gut 👍
Wünsche viel Erfolg
Grüße
Jochen
Anzeige
AW: Outlook per Makro aus Excel öffnen
17.08.2023 12:12:51
JoWE
Der Hinweis
"Der Remote Server Computer existiert nicht oder ist nicht verfügbar"
deutet daraufhin, dass Outlook im Hintergrund noch geöffnet sein könnte, das solltest Du mal mit Hilfe des Taskmanagers prüfen und falls es tatsächlich an dem ist, diesen Task beenden bevor Du das Makro erneut startest.

Gruß
Jochen
Outlook per Makro aus Excel öffnen
17.08.2023 10:30:26
Ulf
Hi Clemens,
warum nimmst, in betracht ziehend dass du verweise aktiviert hast, Create.. statt so zu deklarieren



Sub E_Mail_generieren()
'

' E_Mail_generieren Makro
' Generiert eine E-Mail mit einem Standardtext.
'
' Tastenkombination: Strg+Umschalt+M
'

Selection.Copy

Dim appO As Outlook.Application 'Object

Set appO = New Outlook.Application 'CreateObject("Outlook.Application")


End Sub


würde wahrscheinlich aber den Fehler nicht beheben. Kann sein, dass du die Automatisierung von Outlook per Patch/Gruppenrichtlienie bewußt oder unbewußt deaktiviert hast (lassen), oder ein Virenscanner o.ä. die Verwendung der entsprechenden dll unterbindet. Poste mal ein Bild der Verweise, vlt liegt es auch daran.
(In VBA anzeigen lassen ALT+DRUCK)
hth
Ulf
Anzeige
Outlook per Makro aus Excel öffnen
17.08.2023 11:13:31
Clemens
Vielen Dank für die schnelle Antwort.
"New" bringt auch keine Verbesserung. Das Create habe ich aus meinem Buch ("Einstieg in VBA mit Excel").

Mit der Tastenkombination zeigt es mir leider nichts an. :/
Aktiviert sind:

Visual Basic For Applications
Microsoft Excel 16.0 Object Library
QLE Automaten
Microsoft Office 16.0 Object Library
Microsoft Outlook 16.0 Object Library

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Outlook per Makro aus Excel öffnen


Inhaltsverzeichnis


Die Fragestellung


Du möchtest wissen, wie man Outlook über ein VBA-Makro aus Excel heraus öffnen kann.


Erläuterung des Problems {#erläuterung-des-problems}


Das Öffnen von Outlook aus Excel heraus kann nützlich sein, wenn du beispielsweise E-Mails direkt aus Excel heraus versenden oder auf Outlook-Funktionen zugreifen möchtest, ohne Outlook manuell öffnen zu müssen.


Lösung des Problems {#lösung-des-problems}


Um Outlook aus Excel heraus zu öffnen, kannst du das folgende VBA-Makro verwenden:

Sub OpenOutlook()
    Dim outlookApp As Object

    ' Versuche, eine laufende Outlook-Instanz zu verwenden
    On Error Resume Next
    Set outlookApp = GetObject(, "Outlook.Application")
    On Error GoTo 0

    ' Wenn Outlook nicht geöffnet ist, starte es
    If outlookApp Is Nothing Then
        Set outlookApp = CreateObject("Outlook.Application")
    End If

    ' Outlook sichtbar machen (nicht notwendig, wenn nur E-Mails gesendet werden sollen)
    outlookApp.Visible = True

    ' Aufräumen
    Set outlookApp = Nothing
End Sub

Dieses Skript versucht zuerst, eine bereits laufende Instanz von Outlook zu verwenden. Wenn keine Instanz gefunden wird, startet es Outlook.


Anwendungsbeispiele aus der Praxis


  • Automatisierte E-Mail-Versendung: Erstelle und sende E-Mails basierend auf Daten in Excel.
  • Kalenderverwaltung: Erstelle Termine oder Ereignisse im Outlook-Kalender direkt aus Excel heraus.

Tipps


  • Stelle sicher, dass Outlook auf dem Computer installiert ist, auf dem das Makro ausgeführt wird.
  • Beachte, dass das Makro keine Fehlermeldung ausgibt, wenn Outlook nicht gestartet werden kann. Du kannst zusätzliche Fehlerbehandlungsroutinen hinzufügen, um dies zu berücksichtigen.

Verwandte Themenbereiche


  • VBA-Interaktion mit anderen Office-Anwendungen
  • Automatisierung von E-Mail-Aufgaben
  • Office-Programmierung

Zusammenfassung


Das Öffnen von Outlook aus Excel heraus kann durch ein VBA-Makro automatisiert werden. Dies kann die Effizienz bei der Arbeit mit E-Mails und Kalendereinträgen direkt aus Excel heraus erhöhen. Das bereitgestellte Skript bietet eine einfache Methode, um Outlook zu öffnen oder eine laufende Instanz zu aktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige