Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Email VBA - Link in Text umwandeln

Begonnen von Don, November 01, 2022, 14:33:10

⏪ vorheriges - nächstes ⏩

Don

Hallo zusammen,

habe ein kleines Problem. Ich möchte Mails aus Access versenden, folgender Code funktioniert auch soweit. Das Problem ist, daß das Email Feld in der Tabelle als Link definiert ist so im "An" Feld immer die Mailadressen nach diesem Muster geschrieben werden: Mail@mail.de#mailto:Mail@mail.de (Mail@mail.de)#
Kann man den Feldinhalt im Rahmen für den Code von Link in Text umwandeln? Wenn ja wie? Wenn nein, welche Alternativen gibt es?

Private Sub Ctl1_Mail1_Click()

    Dim myMail      As Outlook.MailItem
    Dim myOutlApp   As Outlook.Application

    Set myOutlApp = New Outlook.Application
    Set myMail = myOutlApp.CreateItem(olMailItem)

    With myMail
        ' Den Empfänger der Mail festlegen
        .To = Email_Ansprechpartner
        ' Den Betreff der Mail festlegen
        .Subject = "Betreff"
        ' Text in die Mail einfügen
        .Body = "Guten Tag " & Me.Anrede & " " & Me.Nachname_Ansprechpartner & ", " & vbCrLf & vbCrLf & Me.Email_Text
        ' Die Email abschicken
        .Display
    End With

    ' Objektvariablen zerstören und Speicher freigeben
    Set myMail = Nothing
    Set myOutlApp = Nothing

End Sub

Vielen Dank für Eure Mühen
VG
Don

steffen0815

Hallo Don,
zum Auflösen von Hyperlinks gibt es den Befehl HyperlinkPartDas mailto:kann man dann mit Replace() entfernen oder per Mid()abschneiden.


Dim sEMail As String
' ...
sEMail = HyperlinkPart(Me.DeinFeldName, acAddress)
sEMail = Replace(sEMail, "mailto:")


Gruß Steffen

Don

Hallo Steffen,

vielen Dank für Deine Antwort, da ich absoluter Newbiemit VBA bin, bin ich nicht ganz sicher wo der zweite Teil (sEmail..) eingefügt werden soll. Bei mir sieht es jetzt so aus.

Private Sub Ctl1_Mail1_Click()

    Dim myMail      As Outlook.MailItem
    Dim myOutlApp   As Outlook.Application
    Dim sEMail As String
   
    ' Ein neue Outlook-Instanz und ein neues Mailitem erstellen
    Set myOutlApp = New Outlook.Application
    Set myMail = myOutlApp.CreateItem(olMailItem)

    With myMail
        ' Den Empfänger der Mail festlegen
        sEMail = HyperlinkPart(Me.Email_Ansprechpartner, acAddress)
        sEMail = Replace(sEMail, "mailto:")
        .To = Email_Ansprechpartner   
        ' Den Betreff der Mail festlegen
        .Subject = "Betreff"
        ' Text in die Mail einfügen
        .Body = "Guten Tag " & Me.Anrede & " " & Me.Nachname_Ansprechpartner & ", " & vbCrLf & vbCrLf & Me.Email_Text
        ' Die Email abschicken
        .Display
    End With

    ' Objektvariablen zerstören und Speicher freigeben
    Set myMail = Nothing
    Set myOutlApp = Nothing
    Set sEMail = Nothing

End Sub

bei der Zeile sEMail = Replace(sEMail, "mailto:") kommt die Fehlermeldung "Argument ist nicht optional"

Hast Du eine Lösung? Danke Dir
VG
Don

steffen0815

Hallo,
ich hatte den 2. Parameter vergessen:sEMail = Replace(sEMail, "mailto:","")
... und du musst dann natürlich auch die neue variable Verwenden: .To = sEMail
Gruß Steffen

Don