Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[vba Outlook 2010] Replace in HTMLBody van OFT met tabel

Pagina: 1
Acties:

  • Anand
  • Registratie: Februari 2001
  • Laatst online: 27-10 00:00

Anand

Thank you, come again!

Topicstarter
Ik heb een OFT-sjabloon met daarin een afbeelding, tekst, een horizontale lijn en een tabel (1 cel).

In de tabel wordt een string vervangen met Replace (). In de tekst wordt op dezelfde manier ook een string vervangen.

Dan wordt het mailitem getoond via .Display.

De tekst is netjes vervangen en is zichtbaar in de cel. Ook in de tekst is een string vervangen en zichtbaar.

Maar na verzenden worden de vervangingen niet meegestuurd. In plaats daarvan wordt de onveranderde inhoud van de originele OFT-sjabloon verstuurd.

Ik heb geen idee waarom, vooral omdat de e-mail correct wordt weergegeven via .Display

In een andere OFT, zonder tabel, worden de strings (in tekst) correct vervangen en meegestuurd. Dit heeft echt te maken met de Replace binnen de cel.

Het gekke is dat, niet alleen de wijzigingen in de cel, maar ook de wijzigingen in de tekst worden genegeerd bij verzending. Dit geldt niet voor de wijziging aan de subject, die wordt correct verzonden. Ook wanneer strFinalConfirmationString simpelweg: "ja" is, gebeurt dit fenomeen.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
strTemplate = "z:\template.oft"
dim olConfMsg as Outlook.MailItem
Set olConfMsg = Application.CreateItemFromTemplate(strTemplate)

olConfMsg.SentOnBehalfOfName = "afzender@adres.com"
olConfMsg.Subject = Replace(olConfMsg.Subject, "%titel%", strTitleString)

'bevindt zich in de tekst:
olConfMsg.HTMLBody = Replace(olConfMsg.HTMLBody, "%titel%", strTitleString) 

'bevindt zich in de cel
olConfMsg.HTMLBody = Replace(olConfMsg.HTMLBody, "%bevestiging%", strFinalConfirmationString) 

olConfMsg.Display


In Google kwam ik enkel http://stackoverflow.com/...works-oft-mail-with-table tegen, maar ik voldoe aan alledrie de punten van de antwoorder.

Heeft iemand een oplossing voor me?


Edit:

Wanneer ik vlak voor verzenden de format van de e-mail handmatig wijzig naar Tekst Met Opmaak, wordt de e-mail wel correct verstuurd.

Het toevoegen van onderstaande code levert een ongewenst resultaat, namelijk dat de opmaak grotendeels verloren gaat.


code:
1
olConfMsg.BodyFormat = olFormatRichText


Ook het saven van de OFT na wijzigen naar Tekst Met Opmaak levert dat ongewenste resultaat. De template ziet er bij handmatig openen goed uit, maar na de VBA-handelingen zit ik weer met een e-mail met grotendeels verloren opmaak.

[ Voor 13% gewijzigd door Anand op 20-10-2015 15:13 ]