Cambiare il font in Outloock da vba

Anonimo
2013-12-19T12:12:42+00:00

Ciao a tutti,

ho un file di excel che mi invia una mail da Outloock però mi prende il carattere Times Mew Romans e vorrei sostituirlo con Century Gothic da VBA e non da Html.

Come posso fare.

Grazie.

Tullio


NOTA. Convertito in Domanda dal moderatore. M.G.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-12-21T10:31:38+00:00

Ciao Tullio,

ho provato il codice che ti scritto su macchine diverse, con diverse versioni di Office e in tutti i casi è stato creato un nuovo messaggio di posta elettronica con la scritta Hello World! in carattere Century Gothic dimensione 20 (parlo del codice del mio ultimo post).

Ho provato a riprodurre i problemi che descrivi e ho visto che:

  • il messaggio viene creato con dimensione 8.5 nel caso non venga specificata che la misura del font è espressa in punti (pt) e non in pixel (px)
  • il messaggio viene creato con font times new roman nel caso in cui tu inserisca spazi al posto del messaggio
  • in nessun caso è stato utilizzato il font calibri

Di conseguenza dovresti assicurarti che la seguente riga venga scritta esattamente così:

corpo = "<HTML><BODY><p style='font-family:Century Gothic;font-size:11pt'>" & "Hello World!" & "</p></BODY></HTML>"

Ciò non solo crea il messaggio con il font Century Gothinc dimensione 11 ma ti consente di continuare a scrivere con quel font.

Nel caso invece in cui il contenuto della tua variabile "corpo" debba essere per forza vuoto in partenza (motivo per cui ti viene creato il messaggio con il font Times New Roman) allora l'alternativa al codice sopra indicato sarebbe quella di creare il messaggio di posta elettronica partendo da un modello di mail già formattato. In questo caso il messaggio andrebbe creato utilizzando il metodo "CreateItemFromTemplate" che puoi approfondire leggendo questa pagina: CreateItemFromTemplate Method  (è la prima routine presentata).

Per la creazione di un modello di messaggio con Outlook puoi dare un'occhiata a questa pagina: Creazione di un modello di messaggio di posta elettronica

http://office.microsoft.com/it-it/outlook-help/creazione-di-un-modello-di-messaggio-di-posta-elettronica-HA101829163.aspx

http://office.microsoft.com/it-it/outlook-help/creazione-di-un-modello-di-messaggio-di-posta-elettronica-HA101829163.aspx

David

La risposta è stata utile?

0 commenti Nessun commento

8 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-12-20T10:54:29+00:00

    Grazie Mauro, grazie David.

    Sto provando ad utilizzare la macro di David, ma anziché "Century Gothic" attiva il font Calibri, poi non capisco come funziona il Font size perché se utilizzo il font size = 11 mi fa la dimensione del 36, se utilizzo 2 fa la dimensione del 10.

    Tullio

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-12-20T10:18:27+00:00

    Ciao Tullio,

    trattandosi di una mail inviata in formato html ogni cambiamento degli aspetti grafici della stessa passa per i tag html.

    Nello specifico per cambiare font devi utilizzare il tag Font Face.

    Di seguito una versione light del tuo codice che invia una mail formattata con Century Gothic


    Sub email_con_firma()

        Dim OutApp As Object

        Dim OutMail As Object

        Dim EmailAddr As String

        Dim Subj As String

        Dim corpo As String

        Set OutApp = CreateObject("Outlook.Application")

        Set OutMail = OutApp.CreateItem(0)

        EmailAddr = "tuo indirizzo e-mail"

        corpo = "<HTML><BODY><FONT face='Century Gothic'>Hello World!</FONT></BODY></HTML>"

        Subj = "Prova Mail"

        With OutMail

           .BodyFormat = 2 'olFormatHTML

           .To = EmailAddr

           .Subject = Subj

           .HTMLBody = corpo

           .Display

        End With

        Set OutMail = Nothing

        Set OutApp = Nothing

     End Sub


    David

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-12-20T10:01:05+00:00

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-12-19T17:06:24+00:00

    Posto anche il codice così si capisce meglio e penso che dovrei aggiungere l'istruzione

    in With Outmail, ho provato a cercare nella guida ma non riesco a trovare niente.

    ________________________________________________________________________________

    Sub email_con_firma()

        Dim OutApp As Object, OutMail As Object

        Dim EmailAddr As String, Subj As String

        Dim BodyText As String, firme As String, signature

        Dim corpo As String

        Dim riga, cerca

    Dim foglio As Worksheet

    Set foglio = ActiveSheet

        Set OutApp = CreateObject("Outlook.Application.12")

        Set OutMail = OutApp.CreateItem(0)

    Application.ScreenUpdating = False

    riga = 2

        cerca = ActiveSheet.Cells(12, 5).Value

    Sheets("Rubrica").Activate

    Cells(riga, 2).Select

    While Sheets("Rubrica").Cells(riga, 2) <> cerca

        riga = riga + 1

    Wend

    EmailAddr = Sheets("Rubrica").Cells(riga, 2 + 10)

    If EmailAddr = "" Then

        MsgBox ("Nessuna mail è collegata a " & cerca)

    End If

    Sheets("Fattura").Activate

    corpo = ""

        On Error Resume Next

        With OutMail

            .Display

            .To = EmailAddr

            .CC = ""

            .BCC = ""

            .Subject = ""

            .HTMLBody = corpo & "<br>" & .HTMLBody

            .Display

        End With

        Set OutMail = Nothing

        Set OutApp = Nothing

    End Sub

    ________________________________________________________________________________

    La risposta è stata utile?

    0 commenti Nessun commento