Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione di dati
Prima di tutto la ringrazio per la sua tempestiva risposta al mio quesito,
Dunque, posto di seguito il codice (VBA) di invio email ma credo che sia del tutto inutile in quanto si tratta di una procedura standard ( una sub per intenderci) alla quale passo come parametri l'oggetto dell'email, i destinatari per competenza e conoscenza, il percorso completo del file Excel da allegare, la stringa del body dell'email ecc. ecc. ...
Public Sub SendEMail(ByVal strHTMLMailBody As String, ByVal strEMailAddressees As String, ByVal strEMailAttachment As String, bla bla bla ... )
Dim objOutlookApp As Object
Dim objMail As Object
Set objOutlookApp = CreateObject("Outlook.Application")
Set objMail = objOutlookApp.CreateItem(olMailItem)
With objMail
.To = strEMailAddressees
.Subject = "Test invio email"
.Attachments.Add (strEMailAttachment)
.BodyFormat = olFormatHTML
.HTMLBody = strHTMLMailBody
...
bla .. bla ..bla ... bla ...
...
.Display
' .Send
End With
End Sub
Infatti il mio problema non è l'invio dell'email che viene inviata correttamente ma è la formattazione della tabella riepilogativa nel body dell'email che Outlook altera se utilizzo il metodo display, per esempio l'head della tabella perde il colore dello sfondo impostato (background-color) gli attributi dei bordi non sono quelli che ho impostato ecc. ecc.
Il body dell'email non è altro che il testo del codice HTML , questo contiene delle variabili di riferimento che per il codice HTML non sono null'altro che testo e che in breve vado a rimpiazzare tramite la funzione Replace di VBA con i valori da includere nella tabella riepilogativa; la sostituzione la eseguo fuori dalla Sub SendEMail(), a questa gli passo come parametro il testo html completo di tutti i valori ...
Il testo HTM del body dell'email è memorizzato in una cella Excel
Se dunque nella Sub SendEMail() uso direttamente il metodo .send e non uso il metodo .display la tabella riepilogativa nel body viene inviata correttamente se invece utilizzo il metodo display (quindi l'invio dovrà essere comandato manualmente nell'anteprima dell'email) la tabella riepilogativa subisce un'alterazione,
Che la causa sia outlook ((della suite Microsoft Office 2021 Professional plus) è evidente ...
Purtroppo in ufficio utilizziamo outlook per le emails e comunque l'anteprima dell'email è necessaria perché di volta in volta capita di dover aggiungere nel body dell'email qualche breve nota del caso