christiankarl
Goto Top

Memofeld Schriften Formatieren (Einfluss auf den HTML Code nehmen) per VBA

Hallo,

ich habe ein Problem, das wenn ich per Buttons vorgefertigte Texte (Schriftart Arial Schriftgrösse 10) in ein Memofeld einfüge und dann im Memofeld dann etwas schreibe, im Vordergrund zwar die Arial 10 weiter angezeigt wird,
aber sobald ich dieses Memofeld per Mail versende , wird die gesamte Schriftart auf einmal mit Arial 11 versendet. ( ist auch in der Tabelle dann erkennbar).
Wie bekomme ich es hin, dass ich per VBA Einfluss auf den darin enthaltenen "HTML" Code zu nehmen
und vor Übernahme dieses Memofeld als Emailtext die gesamte Schriftart auf Arial 10 setzen kann?

Vielleicht kann mir hier jemand helfen

Content-Key: 218014

Url: https://administrator.de/contentid/218014

Printed on: April 24, 2024 at 11:04 o'clock

Member: colinardo
colinardo Sep 27, 2013 updated at 07:58:59 (UTC)
Goto Top
Hallo christiankarl,
könntest du z.B. so machen:
Set objOL = CreateObject("Outlook.Application")  
Set mail = objOL.CreateItem(0)
deinText = "Lorem ipsum dolor sit amet."  
mail.HTMLBody = "<style type=""text/css"">.MyText{font-family:Arial; font-size:10pt;}</style><p class=""MyText"">" & deinText & "</p>"  
mail.Display

Grüße Uwe
Member: christiankarl
christiankarl Sep 27, 2013 at 08:35:09 (UTC)
Goto Top
Hallo Uwe,

danke für die Rückmeldung.

ich selbersende nicht über Outlook sondern sende direkt über den SMPT Server ( Dank M$ Sicherheitspolitik und Warnhinweisen Outlook und nicht der umgehenung in Verbindung Exchange Server die Funktion von OLXSecurity ect nicht).

Set objMessage = CreateObject("CDO.Message")  
   
   Call CDO_config
   
  With objMessage.Configuration.Fields
    '==This section provides the configuration information for the remote SMTP server.  
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = sendusing           '==Normally you will only change the server name or IP.  
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpserver         'Name or IP of Remote SMTP Server  
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = smtpserverport 'Server port (typically 25)  
    .Update
    '==End remote SMTP server configuration section==  
  End With
  
'Auslesen Anzahl E-Mail Adressen  
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Email", dbOpenDynaset)  
    rs.MoveLast             ' <-- wichtig, sonst 'RecordCount' evtl. falsch  
    iMaxZeile = rs.RecordCount
    rs.MoveFirst
    MsgBox "Es werden: " & iMaxZeile & " E-mails gesendet"  
'Auslesen Anzahl E-Mail Adressen Ende  
     
'Senden  
  'Schleife  
  
    For w = 1 To 10
     If eAnhang(w) <> "" Then  
     objMessage.AddAttachment eAnhang(w) 'Anhang aus formular  
     End If
    Next
    
  For I = 1 To iMaxZeile
     
    Email = Replace(EMailVorlage, "[Anrede]", rs.Fields("Anrede") & "")  
    Email = Replace(Email, "[Anrede-Anschreiben]", rs.Fields("Anrede-Anschreiben") & "")  
    Email = Replace(Email, "[Vorname]", rs.Fields("Vorname") & "")  
    Email = Replace(Email, "[Name]", rs.Fields("Nachname") & "")  
    Email = Replace(Email, "[Autohaus]", rs.Fields("Autohaus") & "")  
  
    'Set objMessage = CreateObject("CDO.Message")  
    With objMessage
     .Subject = EMailbetreff
     .Sender = Sender   ' Absender  
     .From = SenderName ' Absendername  
     .To = rs.Fields("E-Mail")  
     .HTMLBody = Email
     '.Send  'Senden E-Mail  
     On Error Resume Next
          .Send
..."  

Leider greift die Erweiterung nicht

     .HTMLBody = "<style type=""text/css"">.MyText{font-family:Arial; font-size:15pt;}</style><p class=""MyText"">" & deinText & "</p>" & Email & "</p"  

Ich muss dabei sagen, dass die anderen vorgefertigten Texte ebenfalls Rich-Text Texte sind, welche in eine Tabelle nur hereinkopiert worden sind(Vorlagen)

Vielleicht hast du noch einen ansatz wie ich das Textfeld "Email" vorher von der schriftart ändern kann.

Danke schön,
Christian
Member: colinardo
colinardo Sep 27, 2013 at 08:51:46 (UTC)
Goto Top
So kann das ja nicht gehen...
guckst du hier
...
....
......
    'Set objMessage = CreateObject("CDO.Message")  
    With objMessage
     .Subject = EMailbetreff
     .Sender = Sender   ' Absender  
     .From = SenderName ' Absendername  
     .To = rs.Fields("E-Mail")  
     .HTMLBody = "<style type=""text/css"">.MyText{font-family:Arial; font-size:10pt;}</style><p class=""MyText"">" & Email & "</p>"  
     '.Send  'Senden E-Mail  
     On Error Resume Next
          .Send
....
...
..

Grüße Uwe
Member: christiankarl
christiankarl Sep 27, 2013 at 09:03:59 (UTC)
Goto Top
Leider funktiioniert dieses immer noch nicht

     .HTMLBody = "<style type=""text/css"">.MyText{font-family:Arial; font-size:10pt;}</style><p class=""MyText"">" & Email & "</p>"  

es wird immer noch falsch versendet.

Es interessiert ihn nicht was an Schriftart oder grösse eingestellt wird.
Member: colinardo
colinardo Sep 27, 2013 updated at 09:10:44 (UTC)
Goto Top
welchen Mailclient verwendest du zum Lesen der Mail ? Das ist das leidige Problem das alle Mailclients unterschiedliche Fähigkeiten besitzen was HTML-Tags angeht...
Das ist eigentlich schon eine Methode die bei den meisten Clients funktionieren sollte ..
Bei mir gehts...
Sind da zufällig HTML-Tags in deinem Text ?
Member: christiankarl
christiankarl Sep 27, 2013 at 09:28:09 (UTC)
Goto Top
Die Testmails lese ich in Outlook,
die Vorlagen selber sind auch Rich-Text , da Sie aus anderen Programm (z.b. Outlook) nur in die Tabellen kopiert wurden.
somit enthalten diese auch HTML-Tags

danke bisher für die Rückmeldungen
Member: colinardo
colinardo Sep 27, 2013 at 09:47:38 (UTC)
Goto Top
dann ist es mir klar.
.HTMLBody = "<style type=""text/css"">.MyText,td,th,body {font-family:Arial, Helvetica, sans-serif !Important; font-size:10pt !Important;}</style><p class=""MyText"">" & Email & "</p>"  
Damit sollte es bei dir gehen.

Grüße Uwe