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

Forumthread: Hyperlink in VBA Outlook Mail

Hyperlink in VBA Outlook Mail
15.03.2018 13:04:07
Heinz
Hallo Liebe Excellenten,
https://www.herber.de/bbs/user/120437.xlsm
ich möchte ein Serien-Email mit Dateianhang mit Outlook verschicken. Mit einem Dateianhang habe ich in Outlook keine Lösung gefunden aber im Internet (Hr. Thehos) eine VBA-Lösung zusammen mit Excel.
Eigentlich funktioniert alles, bis auf die Signatur.
Ich habe in meiner Signatur einen Hyperlink auf die Firmenhomepage.
Bei der Übernahme der Signatur wird (nur für die Signatur) das Format von HTML in etwas unformatiertes geändert.
D.h. wenn ich die Signatur normal nutze und ein Mail verschicke klappt alles, von den Hyerlinks sieht man nur die Bezeichnung und die Hyperlinks funktionieren.
Sobald die Signatur durch das VBA-Programm eingebunden wird, kommen die Hyperlinks unformatiert, d.h. einmal der Link mit dem gesamten Speicherweg und einmal die Bezeichnung für den Link.
Ich hätte gerne ein Lösung, in welcher die HTML-Signatur auch in HTML übernommen wird.
oder
einen Weg, den Hyperlink auf die Firmenhomepage in den Text zu integrieren (dann mache cih die ganze Signatur im Text).
Ich freue mich auf Eure Lösungen.
Heinz
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink in VBA Outlook Mail
15.03.2018 14:45:16
Luschi
Hallo Heinz,
da die Signatur als htm-Datei hinterlegt ist, mußt Du statt .Body auch .HTMLBody durchgehend benutzen.
Dazu gehöhrt dann auch html-Code statt Vba-Code:
- "<br>" statt vbCrLf
- "<ol><li>" ... </ol> statt vbTab
Ich habe Dir das in der Datei mal eingebaut: https://www.herber.de/bbs/user/120443.xlsm
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Hyperlink in VBA Outlook Mail
15.03.2018 17:52:53
Heinz
Hallo Luschi,
sieht gut aus und die Lösung klingt plausibel, aber ich kann es nicht
testen, weil VBA sich an einer Stelle verbeißt.
Ich habe Dir einen Bildschirmausdruck zum Fehler in die Datei kopiert
https://www.herber.de/bbs/user/120447.xlsm
Schönen Abend noch
Heinz
Anzeige
AW: Hyperlink in VBA Outlook Mail
15.03.2018 18:29:26
Luschi
Hallo Heinz,
ergänze im Prozedurkopf folgende 2 Definitionen
Const olMailItem As Integer = 0
Const olFormatHTML As Integer = 2
Userbild
Gruß von Luschi
aus klein-Paris
AW: Hyperlink in VBA Outlook Mail
19.03.2018 07:54:51
Heinz
Hallo Luschi,
die Funktionalität passt zu 100 Prozent.
Danke ein großes Dankeschön an Dich.
Die Erste Zeile meines Textes (Anrede) erscheint in der Schriftart Times in 12 Punkt.
Der Rest in der richtigen Schriftart Calibri 10 Punkt.
Wie kenn ich auch die Anrede zu Calibri "zwingen"?
Heinz
Anzeige
Mal ein anderer Ansatz zu deiner Problematik
15.03.2018 15:24:08
udo
Hallo Heinz,
du könntest dir in OUTLOOK selbst eine Vorlage ( Template ) anlegen, dort kannst du dann deinen Text, Bilder usw. leichter vorbereiten / integrieren .. speichere dieses Template dann an einem spez. Ort und rufe dann dieses Temp. in deinem Excelcode auf ...
Dazu in Outlook neue Email öffnen, erstellen, deinen ganzen Text ect. rein , alles vorbereiten
bis auf die Emailadresse ... dann diese Email speichern unter .... als Muster.oft (OfficeTemplate)
Dieses Temp. sprich du in Excel über folgenden Code an ..

Sub Email_aktive_Zeile()
'       ======================================================================================== _
Dim E_Mail As Object, OutApp As Object
If Cells(ActiveCell.Row, 3).Value = "" Then
MsgBox "    Kein E-Mail Eintrag vorhanden !                           ", , "        _
Email Versand nicht ausführbar !"
Exit Sub
End If
Set OutApp = CreateObject("Outlook.Application")
Set E_Mail = OutApp.CreateItemFromTemplate(Sheets("Tabelle1").Range("P1").Value) '  _
dort stünde deine Pfadangabe zum Template incl. der Templ. Name
' oder  Set E_Mail = OutApp.CreateItemFromTemplate(C:\Email Vorlagen\Muster) ' oder den Pfad  _
incl. ...  in Klammer
E_Mail.Display
E_Mail.To = Sheets("Tabelle1").Range("A1").Value ' da stünde dann zB. per  _
Verweis Formel eine entspr. Email
E_Mail.Subject = Sheets("Tabelle1").Range("B1").Value    ' hier zB. noch  _
Betrefftext usw
Set OutApp = Nothing
Set E_Mail = Nothing
End Sub
Du musst die Angaben im Code eben noch an deine Situation anpassen ...
Denke damit kommst du leichter und schneller voran...
Anders wüsst zumindest ich mit meinen bescheidenen VBA Kentnissen dir nicht zu helfen.
LG udo
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Hyperlink in VBA Outlook Mail


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues VBA-Modul.

  2. Füge den folgenden VBA-Code ein, um eine E-Mail mit einem Hyperlink zu erstellen:

    Sub EmailMitHyperlink()
       Dim OutApp As Object
       Dim E_Mail As Object
       Set OutApp = CreateObject("Outlook.Application")
       Set E_Mail = OutApp.CreateItem(0) ' olMailItem
    
       With E_Mail
           .To = "empfaenger@example.com"
           .Subject = "Betreff der E-Mail"
           .HTMLBody = "<p>Hier ist ein <a href='https://www.example.com'>Link zu unserer Website</a>.</p>" & _
                       "<p>Beste Grüße,<br>Dein Name</p>"
           .Display ' oder .Send um die Mail direkt zu senden
       End With
    
       Set E_Mail = Nothing
       Set OutApp = Nothing
    End Sub
  3. Führe das Makro aus, um die E-Mail zu erstellen. Der Hyperlink wird korrekt dargestellt.


Häufige Fehler und Lösungen

  • Hyperlink funktioniert nicht: Stelle sicher, dass du .HTMLBody statt .Body verwendest, um HTML-Formatierungen zu unterstützen.
  • Unformatierte Links in der Signatur: Verwende HTML-Tag <a href='...'> statt VBA-Formatierungen, um sicherzustellen, dass die Signatur korrekt angezeigt wird.
  • VBA-Fehler: Wenn du einen Fehler beim Ausführen des Codes erhältst, überprüfe die Definitionen im Prozedurkopf. Beispiel:

    Const olMailItem As Integer = 0
    Const olFormatHTML As Integer = 2

Alternative Methoden

Eine einfache Methode, um Hyperlinks in E-Mails einzufügen, ist die Nutzung von Outlook-Vorlagen. Du kannst eine E-Mail mit allen gewünschten Inhalten und Links als Vorlage speichern:

  1. Erstelle eine neue E-Mail in Outlook.
  2. Füge alle gewünschten Inhalte und Hyperlinks hinzu.
  3. Speichere die E-Mail als Vorlage (Datei > Speichern unter > Outlook-Vorlage).
  4. Nutze den folgenden VBA-Code, um die Vorlage in Excel aufzurufen:

    Set E_Mail = OutApp.CreateItemFromTemplate("C:\Pfad\zur\Vorlage.oft")

Praktische Beispiele

  • Beispiel 1: Hyperlink in der E-Mail:

    .HTMLBody = "<p>Besuche unsere <a href='http://www.firma.de'>Website</a> für mehr Informationen.</p>"
  • Beispiel 2: Hyperlink in der Signatur:

    Achte darauf, den Link direkt in der HTML-Signatur zu verwenden:

    <p>Mit freundlichen Grüßen,<br><a href='http://www.firma.de'>Dein Name</a></p>

Tipps für Profis

  • HTML-Code optimieren: Nutze CSS für eine ansprechende Formatierung in deinen E-Mails.
  • Testen der Links: Überprüfe alle Hyperlinks vor dem Versand, um sicherzustellen, dass sie korrekt funktionieren.
  • Outlook-Signatur: Um einen Hyperlink in der Signatur zu integrieren, kannst du im Outlook-Editor unter Optionen > Signaturen arbeiten und sicherstellen, dass der HTML-Code korrekt übernommen wird.

FAQ: Häufige Fragen

1. Wie füge ich einen Hyperlink in meine Outlook-Signatur ein?
Du kannst einen Hyperlink in deiner Signatur hinzufügen, indem du im Outlook-Signatur-Editor den HTML-Code für den Link verwendest.

2. Warum funktioniert mein VBA-Code nicht?
Überprüfe, ob alle Variablen richtig deklariert sind und ob die Outlook-Anwendung korrekt instanziiert wurde.

3. Kann ich mehrere Hyperlinks in einer E-Mail einfügen?
Ja, du kannst mehrere Hyperlinks in der HTMLBody-Eigenschaft der E-Mail hinzufügen. Stelle sicher, dass jeder Link korrekt formatiert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige