KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Esercitazione su Excel – Inviare email da Excel

AutoreSiluvia Data di modifica

Di solito, per inviare email si utilizzano client di posta elettronica come Outlook, Gmail e altri. Tuttavia, molte persone conservano dati in una cartella di lavoro Excel e devono condividere parte di tali informazioni con altri mentre le stanno elaborando. Per risparmiare tempo evitando di passare a un client di posta elettronica, desiderano inviare email direttamente da Excel. Questa guida passo passo mostra come inviare email da Excel in diverse situazioni.

Nota: prima di applicare i metodi seguenti, assicurati di aver configurato un client di posta elettronica Outlook sul tuo computer e di averlo impostato come client predefinito.

 Indice:[ Nascondi ]

(Fai clic su qualsiasi titolo nell’indice qui sotto o a destra per passare al capitolo corrispondente.)

1. Nozioni di base sull’invio di email da Excel

Questa sezione presenta le nozioni fondamentali per inviare email direttamente da Excel.

1,1 Inviare email da Excel con le funzioni integrate di Excel

Se desideri inviare da Excel soltanto email semplici, con esclusivamente i campi A, Oggetto, Cc e corpo del messaggio, puoi utilizzare le funzioni integrate di Excel.


1,1.1 Inviare un’email da Excel mediante una formula

Come illustrato nella tabella seguente, per inviare email diverse da Excel in base ai campi specificati, puoi utilizzare i riferimenti di cella corrispondenti per creare formule HYPERLINK personalizzate. Una volta generati i collegamenti ipertestuali per le email, ti basterà fare clic su quello desiderato per inviare automaticamente il messaggio.

Nota: se nei campi A o Cc sono presenti più destinatari, separarli con un punto e virgola.

Questa sezione è suddivisa in quattro parti per illustrare i passaggi necessari ad aggiungere separatamente alla formula Hyperlink l’indirizzo email del destinatario, i destinatari in copia (Cc), l’oggetto e il testo del corpo del messaggio. Procedere come segue.

La sintassi e gli argomenti della funzione «HYPERLINK» sono i seguenti:

Sintassi

HYPERLINK(link_location, [friendly_name])

Argomenti

«Percorso_collegamento» (obbligatorio): percorso e nome del file del documento da aprire;
Suggerimento: in questa guida, tutti i campi necessari per un'email, come il destinatario Indirizzo Email, i destinatari in copia (Cc), l’oggetto e il testo del corpo, devono essere inseriti nel primo argomento «percorso_collegamento».
«Nome_visualizzato» (facoltativo): il testo visualizzato nella cella.

1,1.1,1 Aggiungere Indirizzo Email alla formula Hyperlink

In questo caso, si utilizza «mailto:» all’interno della formula per specificare il destinatario dell’email. Nell’esempio, l’indirizzo email del primo destinatario si trova nella cella B2; pertanto, è sufficiente aggiungere «mailto:» e farvi riferimento tramite la cella B2.

“mailto:”&B2

1. Seleziona una cella in cui inserire il collegamento ipertestuale. In questo esempio, è stata scelta la cella F2.

2. Inserisca quindi la seguente formula nella cella selezionata.

=HYPERLINK("mailto:"&B2)

Nota: premendo il tasto «Invio», verrà creato un collegamento ipertestuale come mostrato nello screenshot seguente. Cliccando sul collegamento, si aprirà automaticamente una nuova email in Outlook con l’indirizzo del destinatario già inserito nel campo A.

L’indirizzo email del destinatario è ora stato aggiunto alla formula Hyperlink. Prosegui con i passaggi successivi per includere, se necessario, oggetto, destinatari in copia (Cc) e testo del corpo del messaggio.


1,1.1,2 Aggiungere i destinatari Cc alla formula Hyperlink

Per aggiungere destinatari in copia (Cc) alla funzione Hyperlink, inserisci «?cc=» direttamente nella formula, come mostrato di seguito.

«?cc=» & C2
dove C2 contiene l'Indirizzo Email del destinatario in copia conoscenza (Cc).

La formula nella cella F2 dovrà essere la seguente:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2)


1,1.1,3 Aggiungere l’oggetto alla formula Hyperlink

Per aggiungere l’oggetto alla funzione Hyperlink, inserisci «&subject=» come parte della formula, come mostrato di seguito.

«&subject=»& D2
dove D2 contiene l'Oggetto email.

La formula nella cella F2 dovrà ora apparire nel modo seguente:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)


1,1.1,4 Aggiungere il testo del corpo del messaggio con interruzioni di riga alla formula Hyperlink

L’ultimo passaggio consiste nell’aggiungere il testo del corpo del messaggio alla formula Hyperlink. Come si nota nell’esempio, le due righe di testo presenti in E2 sono separate da un’interruzione di riga e si desidera conservare questa formattazione nel corpo dell’email. Outlook riconosce l’interruzione di riga in questo caso? Verifichiamolo.

Per aggiungere il testo del corpo del messaggio alla formula Hyperlink, inserisci «&body=» come parte della formula, come mostrato di seguito.

«&body=»& E2
dove E2 contiene il testo del corpo dell'email.

La formula nella cella F2 viene ora visualizzata nel modo seguente:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)

Nota: se si preme il tasto «Invio» e si fa clic sul collegamento, in Nuova Email il contenuto del corpo dell’email verrà visualizzato su un’unica riga.

Per visualizzare il corpo dell’email su righe separate, aggiungi il codice «%0A» nel punto in cui desideri inserire un’interruzione di riga all’interno del contenuto della cella. Consulta lo screenshot:


1,1.1,5 Specificare il testo da visualizzare per il collegamento ipertestuale

Nei passaggi precedenti, l’argomento Link_location è stato completato con i campi dell’email. In questa sezione verrà invece compilato il successivo argomento [friendly_name].

In questo caso, si desidera che la cella del collegamento ipertestuale mostri il testo «Email a xx», dove «xx» corrisponde al nome del destinatario presente in A2. La formula in F2 dovrà quindi essere aggiornata come segue:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)

Premere il tasto «Invio» per visualizzare il risultato.

Seleziona la cella contenente la formula e trascina la sua «maniglia di riempimento automatico» verso il basso per creare ulteriori collegamenti ipertestuali alle email. Vedi lo screenshot:


1,1.2 Inviare un’email da Excel con la funzione Hyperlink

Oltre alla formula HYPERLINK illustrata in precedenza, puoi creare manualmente un collegamento ipertestuale per l’email utilizzando la funzione «Crea collegamento ipertestuale» di Excel. Di seguito trovi i passaggi necessari.

1. Fare clic con il pulsante destro del mouse sulla cella in cui si vuole inserire un collegamento ipertestuale e scegliere «Collegamento» dal menu contestuale.

2. Nella finestra di dialogo «Crea collegamento ipertestuale» visualizzata, procedi come segue.

2,1) Selezionare «Indirizzo Email» nel riquadro sinistro.
2,2) Nella casella di testo «Testo da visualizzare», digitare il testo che si desidera mostrare nella cella;
Suggerimento: non è possibile utilizzare i riferimenti di cella in questa finestra di dialogo, pertanto occorre digitare manualmente i campi email come segue.
2,3) Nella casella di testo «Indirizzo Email», occorre digitare il seguente Indirizzo Email.
mailto:Indirizzo Email
Sostituire il testo “Indirizzo Email” con il proprio reale Indirizzo Email. Se si dispone di più di un Indirizzo Email, separarli con un punto e virgola.
2,4) Nella casella di testo «Oggetto», è possibile specificare direttamente qui l'Oggetto email e il corpo dell'email. Configurare come segue:
Oggetto email&body=Corpo dell'email
In questo caso, viene digitato «Vendita mensile&body=Ciao,%0AEmail ricevuta».
dove l'oggetto è Vendita mensile;
e
il corpo dell'email è:
Ciao,
Email ricevuta. («%0A» è il codice carattere A capo riconosciuto da Outlook)
2,5) Fare clic sul pulsante «OK» per salvare il collegamento ipertestuale. Vedere lo screenshot:

Facendo clic sul collegamento ipertestuale, verrà automaticamente creata un’email in Outlook con i campi A, Oggetto e Corpo già compilati, come illustrato nello screenshot seguente.

Note:

1) Con questo metodo, è necessario creare manualmente ciascun collegamento ipertestuale per l'email.
2) Con questo metodo non è possibile aggiungere il campo Cc alle email. Pertanto, se è necessario il campo Cc, aggiungerlo dalla nuova finestra di composizione email.

1,2 Inviare un’email a più destinatari presenti in celle mediante script VBA

Nell’esempio precedente si possono osservare più indirizzi email visualizzati in una singola cella, separati da punto e virgola. Se si dispone di un elenco di indirizzi email, come mostrato nello screenshot seguente, e si desidera inviare un’unica email oppure email distinte a tutti i destinatari, il codice VBA seguente potrà esserti d’aiuto.


1,2.1 Inviare un’email a più destinatari presenti in celle mediante script VBA

1. Nel foglio di lavoro contenente tutti gli indirizzi email a cui si desidera inviare il messaggio, premere i tasti «Alt» + «F11» per aprire la finestra «Microsoft Visual Basic, Applications Edition».

2. Nella finestra «Microsoft Visual Basic, Applications Edition», fai clic su «Inserisci» > «Modulo» e incolla il codice seguente nella finestra «Modulo (Codice)».

Codice VBA: inviare un’email a un elenco di Indirizzo Email

Sub sendmultiple()
'updateby Extendoffice 20220802
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Subject = "Test"
        .Body = "Dear " _
                & vbNewLine & vbNewLine & _
                "This is a test email " & _
                "sending in Excel"
        .Display
    End With
End Sub

3. Premere il tasto «F5» per eseguire il codice: verrà visualizzata la finestra di dialogo «Kutools per Excel». Selezionare l’elenco degli indirizzi email e fare clic su «OK».

Uno screenshot della finestra di dialogo 'Kutools for Excel' che richiede l'elenco degli indirizzi email

Note:

1) Se non si desidera che venga visualizzata la finestra di dialogo sopra indicata e si vuole specificare direttamente nel codice l'intervallo di Indirizzo Email, sostituire questa riga:
Set xRg = Application.InputBox(«Please select the addresses list:», «Kutools for Excel», xTxt, , , , , 8)
con
Set xRg = Range("A2:A7")
2) È possibile specificare il proprio Oggetto email e il corpo del messaggio nelle righe seguenti:
.Subject = «Test»
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Per inviare direttamente l'email senza aprire la nuova finestra del messaggio, occorre sostituire questa riga:
.Display
con
.Send

Dopo l’esecuzione del codice, tutti gli indirizzi email presenti nell’intervallo selezionato verranno visualizzati nel campo A della finestra del messaggio. Vedere lo screenshot:

Uno screenshot della finestra del messaggio email con tutti gli indirizzi email inseriti nel campo A


1,2.2 Inviare separatamente un’email a ciascun destinatario elencato nelle celle mediante script VBA

Il codice precedente aggiunge tutti gli indirizzi email presenti nell’intervallo selezionato al campo A della finestra del messaggio. Se invece desideri inviare un’email distinta a ciascun indirizzo dell’elenco presente nelle celle, garantendo che i destinatari non possano vedere gli indirizzi email degli altri, puoi utilizzare lo script VBA seguente.

1. Nel foglio di lavoro contenente tutti gli indirizzi email a cui si desidera inviare i messaggi, premere «Alt» + «F11» per aprire la finestra di Microsoft Visual Basic, Applications Edition.

2. Nella finestra «Microsoft Visual Basic, Applications Edition», fai clic su «Inserisci» > «Modulo», quindi incolla il codice seguente nella finestra «Modulo (Codice)».

Codice VBA: inviare un’email distinta a ciascun indirizzo Elenco indirizzi presente nelle celle

Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
    Dim xRg As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
    For Each xRgEach In xRg
        xRgVal = xRgEach.Value
        If xRgVal Like "?*@?*.?*" Then
            Set xMailOut = xOutApp.CreateItem(olMailItem)
            With xMailOut
                .To = xRgVal
                .Subject = "Test"
                .Body = "Dear " _
                      & vbNewLine & vbNewLine & _
                        "This is a test email " & _
                        "sending in Excel"
                .Display
                '.Send
            End With
        End If
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

3. Fare quindi clic su «Strumenti» > «Riferimenti». Nella finestra di dialogo «Riferimenti – VBAProject», individuare e selezionare la casella «Microsoft Outlook 16,0 Object Library», quindi confermare con «OK» per salvare le modifiche.

Uno screenshot della finestra di dialogo 'Riferimenti – VBAProject' in Excel con l'opzione Microsoft Outlook 16.0 Object Library selezionata

4. Premere il tasto «F5» per eseguire il codice: verrà visualizzata la finestra di dialogo «Kutools per Excel». Selezionare l’elenco degli indirizzi email e fare clic su «OK».

Uno screenshot della finestra di dialogo 'Kutools for Excel' che richiede la selezione dell'elenco degli indirizzi email

Note:

1) Se non si desidera che venga visualizzata la finestra di dialogo sopra indicata e si vuole specificare direttamente nel codice l'intervallo di Indirizzo Email, sostituire questa riga:
Set xRg = Application.InputBox(«Please select the addresses list:», «Kutools for Excel», xTxt, , , , , 8)
con
Set xRg = Range("A2:A7")
2) È possibile specificare il proprio Oggetto email e il corpo del messaggio nelle righe seguenti:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Per inviare direttamente l'email senza aprire le finestre dei nuovi messaggi, occorre sostituire questa riga:
.Display
con
.Send

Nell’esempio sono presenti sei indirizzi email in **Seleziona intervallo**; di conseguenza, verranno create automaticamente sei finestre di messaggio di Outlook, ciascuna con un indirizzo diverso nel campo **A**, come illustrato nello screenshot seguente.

Uno screenshot di più finestre di messaggi di Outlook con indirizzi email separati nel campo A

5. Infine, fai clic sul pulsante «Invia» per inviare le email una alla volta.


2. Inserisci un allegato o la firma di Outlook nelle email inviate da Excel (con script VBA)

Questa sezione spiega come inserire un allegato o aggiungere la firma predefinita di Outlook alle email inviate da Excel.

2,1 Inserisci allegato nelle email inviate da Excel

Di seguito sono illustrati diversi casi d’uso per la funzione **Inserisci allegato**: scegli il metodo più adatto alle tue esigenze. In questa sezione scoprirai come procedere — fai clic su uno dei collegamenti seguenti per passare direttamente al metodo desiderato:


2,1.1 Inviare un file specifico come allegato

È possibile utilizzare il seguente codice VBA per inviare via email, direttamente da Excel, uno o più file presenti in una cartella come allegati.

1. Premere i tasti «Alt» + «F11».

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, fare clic su «Inserisci» > «Modulo», quindi incollare il seguente codice VBA nella finestra del modulo (Codice).

Codice VBA: Invia file in una cartella come allegati da Excel

Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
    Dim xStrFile As String
    Dim xFilePath As String
    Dim xFileDlg As FileDialog
    Dim xFileDlgItem As Variant
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    If xFileDlg.Show = -1 Then
        With xMailOut
            .BodyFormat = olFormatRichText
            .To = "xxx@aaa.com"
            .Subject = "test"
            .HTMLBody = "test"
            For Each xFileDlgItem In xFileDlg.SelectedItems
                .Attachments.Add xFileDlgItem
            Next xFileDlgItem
            .Display
        End With
    End If
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

Note:

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario;
2) Modificare separatamente l'Oggetto email e il corpo dell'email nelle righe «.Subject = »test"" e ".HTMLBody = "test"";
3) È possibile aggiungere destinatari in Cc e Ccn secondo necessità. Basta aggiungere le due righe seguenti sotto la riga «.To = xxx@aaa.com».
.CC = «email address»
.BCC = «email address»

3. Fare quindi clic su «Strumenti» > «Riferimenti». Nella finestra di dialogo «Riferimenti – VBAProject», individuare e selezionare la casella «Microsoft Outlook 16,0 Object Library», quindi confermare con «OK» per salvare le modifiche.

Uno screenshot della finestra di dialogo 'Riferimenti – VBAProject' in Excel con l'opzione Microsoft Outlook 16.0 Object Library selezionata

4. Premere il tasto «F5» per eseguire il codice: si aprirà una finestra «Sfoglia». Seleziona i file da allegare all'email e fai clic su «OK».

Uno screenshot della finestra 'Sfoglia' per selezionare i file da allegare a un'email in Excel

Si aprirà quindi una finestra di messaggio in cui i file selezionati saranno visibili come allegati nel campo Allegati.

Uno screenshot della finestra del messaggio di Outlook con i file selezionati visualizzati come allegati


2,1.2 Invia il Foglio di lavoro corrente come allegato

Per inviare il foglio di lavoro corrente come allegato direttamente da Excel, puoi utilizzare lo script VBA illustrato in questa sezione.

1. Premere i tasti «Alt» + «F11».

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, fai clic su «Inserisci» > «Modulo», quindi incolla il seguente codice VBA nella finestra «Modulo (Codice)».

Codice VBA: Invia il Foglio di lavoro corrente come allegato

Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

Note:

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario reale. Se sono presenti più di un Indirizzo Email, separarli con punti e virgola.
2) Modificare separatamente l'Oggetto email e il corpo dell'email nelle righe «.Subject = »kte features"" e ".Body = " Si prega di controllare e leggere questo documento.«»;
3) Nelle due righe seguenti:
.CC = «email address»
.BCC = «email address»
Se si desidera aggiungere destinatari in cc e bcc, sostituire il testo “«Indirizzo Email»” nelle righe con gli Indirizzo Email necessari.
Se non servono destinatari in cc e bcc, aggiungere semplicemente un apostrofo 'all'inizio di ciascuna riga.

3. Premere il tasto «F5» per eseguire il codice: il foglio di lavoro corrente verrà salvato come cartella di lavoro Excel e inserito automaticamente come allegato in una finestra di messaggio. Vedere screenshot:

Uno screenshot della finestra del messaggio di Outlook con il foglio di lavoro corrente salvato e allegato come cartella di lavoro Excel

Nota: la cartella di lavoro allegata, che contiene soltanto il Foglio di lavoro corrente, ha lo stesso nome della cartella di lavoro originale. Inoltre, al Nome Workbook viene aggiunto anche l’orario in cui è stato eseguito il codice.


2,1.3 Invia il Foglio di lavoro corrente come allegato

Dopo aver appreso il codice VBA per inviare il foglio di lavoro corrente come allegato da Excel, ecco un altro script VBA per inviare l’intera cartella di lavoro come allegato. Procedi come segue.

1. Premere i tasti «Alt» + «F11».

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, fai clic su «Inserisci» > «Modulo», quindi incolla il seguente codice VBA nella finestra del modulo (Codice).

Codice VBA: Invia il Foglio di lavoro corrente come allegato da Excel

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

Note:

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario reale. Se sono presenti più di un Indirizzo Email, separarli con punti e virgola.
2) Modificare separatamente l'Oggetto email e il corpo dell'email nelle righe «.Subject = »kte features"" e ".Body = " Si prega di controllare e leggere questo documento.«»;
3) Nelle due righe seguenti:
.CC = «email address»
.BCC = «email address»
Se si desidera aggiungere destinatari in cc e bcc, sostituire il testo "Indirizzo Email” nelle righe con gli Indirizzo Email necessari.
Se non servono destinatari in cc e bcc, aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.

3. Premere il tasto «F5» per eseguire il codice: il foglio di lavoro corrente verrà automaticamente allegato alla finestra di messaggio. Vedere screenshot:

Uno screenshot della finestra del messaggio di Outlook con la cartella di lavoro corrente allegata automaticamente


2,1.4 Invia l’intera cartella di lavoro come allegato PDF

La maggior parte degli utenti salva una cartella di lavoro Excel come file PDF per inviarla successivamente come allegato. In questa sezione ti mostriamo un metodo per inviare direttamente un’e-mail da Excel, allegando automaticamente la cartella di lavoro aperta in formato PDF, senza doverla salvare manualmente come file PDF.

1. Premere i tasti «Alt» + «F11».

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, fai clic su «Inserisci» > «Modulo», quindi incolla il seguente codice VBA nella finestra del modulo (Codice).

Codice VBA: Invia l’intera cartella di lavoro come allegato PDF

Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next

Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName

Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    FilePath, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
       .To = "xxx@aaa.com"
       .CC = "Email Address"
       .BCC = "Email Address"
       .Subject = "test"
       .Body = "test"
       .Attachments.Add FilePath
       .Display   'or use .Send
   End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub

Note:

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario reale. Se sono presenti più di un Indirizzo Email, separarli con punti e virgola.
2) Modificare separatamente l'Oggetto email e il corpo dell'email nelle righe .Subject = "test" e .Body = "test";
3) Nelle due righe seguenti:
.CC = «Email Address»
.BCC = «Email Address»
Se si desidera aggiungere destinatari in cc e bcc, sostituire il testo "Indirizzo Email” nelle righe con gli Indirizzo Email necessari.
Se non servono destinatari in cc e bcc, aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.
4) Il nome del File PDF sarà lo stesso del file di lavoro originale. Inoltre, al nome del Nome Workbook verrà aggiunto anche l'orario di esecuzione del codice. Se non si desidera aggiungere la marca temporale al nome del file, rimuovere & Format(Now, «dd-mmm-yy h-mm-ss») dalla riga seguente.
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -[[PH_372]], vbTextCompare) - [[PH_371]])) & Format(Now, «dd-mmm-yy h-mm-ss») & «.pdf»

3. Premere il tasto «F5» per eseguire il codice: il foglio di lavoro corrente verrà automaticamente allegato come file PDF in una nuova finestra di messaggio. Vedere screenshot:

Uno screenshot della finestra del messaggio di Outlook con la cartella di lavoro corrente allegata come file PDF


2,1.5 Invia il Foglio di lavoro corrente come allegato PDF

Ad esempio, immagina di avere una cartella di lavoro denominata «Vendite mensili» e di aver completato una tabella di report delle vendite in un foglio chiamato «Report vendite» che desideri inviare ai colleghi come file PDF. Il seguente codice VBA ti sarà d’aiuto.

1. Premere i tasti «Alt» + «F11».

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, fai clic su «Inserisci» > «Modulo», quindi incolla il seguente codice VBA nella finestra del modulo (Codice).

Codice VBA: Invia il Foglio di lavoro corrente come allegato PDF

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

Note:

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario reale. Se sono presenti più di un Indirizzo Email, separarli con punti e virgola.
2) Modificare separatamente l'Oggetto email e il corpo dell'email nelle righe .Subject = "test" e .Body = "test";
3) Nelle due righe seguenti:
.CC = «Email Address»
.BCC = «Email Address»
Se si desidera aggiungere destinatari in cc e bcc, sostituire il testo "Indirizzo Email” nelle righe con gli Indirizzo Email necessari.
Se non servono destinatari in cc e bcc, aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.
4) Il nome del File PDF sarà: nome del file di lavoro originale_nome del foglio di lavoro originale. In questo caso, il nome del PDF sarà Vendite mensili_resoconto vendite.

3. Premere il tasto «F5» per eseguire il codice: il foglio di lavoro corrente verrà automaticamente allegato come file PDF in una nuova finestra di messaggio. Vedere screenshot:

Uno screenshot della finestra del messaggio di Outlook con il foglio di lavoro corrente allegato come file PDF


2,2 Inserisci la firma di Outlook nelle email inviate da Excel

Prendendo come esempio il caso precedente, si applica il codice VBA sopra riportato per inviare il foglio di lavoro corrente come allegato PDF da Excel, ma non è possibile includere automaticamente la firma di Outlook nella finestra del messaggio. Per conservare la firma predefinita di Outlook nell’e-mail inviata da Excel, il metodo seguente risulterà particolarmente utile.

Di seguito trovi due codici VBA.

Codice VBA 1: questo codice ti permette di conservare la firma di Outlook.

Codice VBA 2: questo codice ti consente di inviare il foglio di lavoro corrente come allegato PDF.

Codice VBA 1: mantiene la firma di Outlook

.HTMLBody = "Email body" & "
" & .HTMLBody

Codice VBA 2: invia il Foglio di lavoro corrente come allegato PDF

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

1. Di solito, per aprire la finestra «Microsoft Visual Basic for Applications», è sufficiente premere i tasti «Alt» + «F11».

2. Nella finestra «Microsoft Visual Basic for Applications», fare clic su «Inserisci» > «Modulo», quindi incollare il codice VBA indicato sopra nella finestra Modulo (Codice).

3. Per conservare la firma predefinita di Outlook nelle email inviate da Excel, è necessario modificare il codice VBA 2 come segue:

1) Sostituire la riga «.Body» con "codice VBA 1";
2) Spostare la riga «.Display» sotto la riga «With OutlookMail (o With xMailOut negli altri codici)». Vedere lo screenshot:

Uno screenshot che mostra il codice VBA modificato con la riga .Body sostituita e .Display posizionata sotto With OutlookMail

Di seguito trovi il codice completo aggiornato.

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .Display
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .HTMLBody = "Email body" & "
" & .HTMLBody
    .Attachments.Add FileName
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

4. Premi il tasto «F5» per eseguire il codice: si aprirà una nuova finestra di messaggio con il foglio di lavoro corrente allegato come file PDF e la firma predefinita di Outlook inserita automaticamente in calce al corpo dell’email.

Uno screenshot di un'email in Outlook con la firma predefinita inserita automaticamente alla fine del corpo del messaggio


3. Invio automatico di email da Excel al verificarsi di una condizione (con script VBA)

Negli esempi precedenti è necessario eseguire manualmente il codice per inviare l’email. Se invece si desidera attivare automaticamente il codice al verificarsi di una determinata condizione – ad esempio quando una cella raggiunge un certo valore, quando il suo contenuto cambia o quando si arriva a una data specifica – l’email verrà inviata in modo automatico. Questa sezione presenta le condizioni più richieste dagli utenti di Excel su Google per inviare email automaticamente da Excel non appena si verifica una condizione specifica.

3,1 Invia automaticamente un’email quando una cella raggiunge un determinato valore

Come illustrato nello screenshot seguente, ipotizziamo di avere una tabella delle vendite in cui la cella D6 contiene il totale vendite. Si desidera inviare automaticamente un’e-mail al proprio responsabile in base a tale valore: ad esempio, generare e inviare automaticamente un’e-mail non appena il totale vendite supera 10.000, mentre nessuna azione viene intrapresa se il totale è pari o inferiore a 10.000.

1. Nel foglio di lavoro che contiene la tabella delle vendite, fai clic con il pulsante destro sulla scheda del foglio e seleziona «Visualizza codice» dal menu contestuale.

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, incolla il seguente codice VBA nella finestra «Foglio (Codice)».

Codice VBA: Invia automaticamente un’email quando una cella raggiunge un determinato valore in Excel

Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub

Note:

1) "D6" è la cella il cui valore determinerà l'invio dell'email.
2) «> 10000» è la condizione, che significa che un'email verrà inviata quando il valore in D6 è maggiore di 10000.
3) «Range(»D6«)» nella riga seguente indica che il corpo dell'email farà riferimento al valore presente in D6.
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario reale. Se sono presenti più di un Indirizzo Email, separarli con punti e virgola.
5) Modificare l'Oggetto email nella riga .Subject = «test».
6) Nelle due righe seguenti:
.CC = «Email Address»
.BCC = «Email Address»
Se si desidera aggiungere destinatari in cc e bcc, sostituire il testo "Indirizzo Email” nelle righe con gli Indirizzo Email necessari.
Se non servono destinatari in cc e bcc, aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.

D’ora in poi, ogni volta che il valore nella cella D6 supererà 10.000, verrà generata un’e-mail come illustrato nello screenshot seguente.

Uno screenshot di un'email creata in Outlook quando il valore nella cella D6 supera 10000 in Excel


3,2 Invia automaticamente un’email quando il valore di una cella cambia

Come mostrato nello screenshot seguente, si supponga di ricevere una cartella di lavoro contenente le vendite mensili in diversi fogli e il totale vendite in un foglio specifico. È necessario verificare il totale vendite e, se quest’ultimo viene modificato, inviare nuovamente la cartella di lavoro al mittente informandolo che la cella è stata modificata.

1. Nel foglio di lavoro che contiene la tabella delle vendite, fai clic con il tasto destro sulla scheda del foglio e seleziona «Visualizza codice» dal menu contestuale.

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, incolla il seguente codice VBA nella finestra Foglio (Codice).

Codice VBA: Invia automaticamente un’email quando il valore di una cella specificata cambia

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If

ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address

Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."

With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Note: nel codice,

1) "B14" nel codice indica che, quando il valore della cella B14 cambia, verrà inviata un'email.
2) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario reale. Se sono presenti più di un Indirizzo Email, separarli con punti e virgola.
3) Modificare l'Oggetto email nella riga .Subject = «Foglio di lavoro modificato».
4) Nelle due righe seguenti:
.CC = «Email Address»
.BCC = «Email Address»
Se si desidera aggiungere destinatari in cc e bcc, sostituire il testo "Indirizzo Email” nelle righe con gli Indirizzo Email necessari.
Se non servono destinatari in cc e bcc, aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.

D’ora in poi, ogni volta che il valore nella cella B14 verrà modificato, verrà automaticamente generata un’email di Outlook come illustrato nello screenshot seguente.

Uno screenshot di un'email creata in Outlook quando il valore nella cella B14 cambia


3,3 Invia automaticamente un’email quando una cartella di lavoro viene salvata

Se devi condividere una cartella di lavoro con altri dopo averla modificata, di solito devi salvarla, aprire il client di posta elettronica, creare una nuova email allegando la cartella di lavoro, compilare i campi richiesti e inviare il messaggio. Questa sezione illustra un metodo per generare automaticamente un’email ogni volta che salvi la cartella di lavoro. Procedi come segue.

1. Premere i tasti «Alt» + «F11» per aprire la finestra di «Microsoft Visual Basic for Applications».

2. In questa finestra, fai doppio clic su «QuestaCartellaDiLavoro» nel riquadro «Progetto», quindi incolla il seguente codice VBA nella finestra «QuestaCartellaDiLavoro (Codice)».

Codice VBA: Invia automaticamente un’email quando una cartella di lavoro viene salvata

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "xxx@aaa.com"
        .CC = "Email address"
        .BCC = "Email address"
        .Subject = "The workbook has been updated"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

Note: nel codice,

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con l'Indirizzo Email del destinatario reale. Se sono presenti più di un Indirizzo Email, separarli con punti e virgola.
2) Modificare separatamente l'Oggetto email e il corpo del messaggio nelle righe «.Subject = »The workbook has been updated"" and ".Body = "Hi," & Chr([[PH_422]]) & Chr(13) & "Il file è stato aggiornato.«».
3) Nelle due righe seguenti:
.CC = «Email Address»
.BCC = «Email Address»
Se si desidera aggiungere i destinatari in copia (cc) e in copia nascosta (bcc), sostituire il testo «Indirizzo Email» nelle righe con i Indirizzo Email necessari.
Se non servono i destinatari in copia (cc) e in copia nascosta (bcc), aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.

3. D’ora in poi, ogni volta che si salva la cartella di lavoro — premendo «Ctrl» + «S» o facendo clic sul pulsante «Salva» — verrà creata automaticamente un’email di Outlook con il foglio di lavoro corrente allegato e i campi compilati con il contenuto specificato. Vedere screenshot:

Uno screenshot che mostra un'email di Outlook con la cartella di lavoro corrente allegata, pronta per essere inviata automaticamente

Suggerimento: se utilizzi spesso questa cartella di lavoro, ti consigliamo di salvarla come «Cartella di lavoro abilitata alle macro di Excel» per conservare lo script VBA e riutilizzarlo in futuro. Ecco come fare.

1) Fare clic su «File» > «Salva con nome» e scegliere quindi una cartella in cui salvare il file.
2) Nella finestra di dialogo «Salva con nome», rinominare il file come necessario nella casella di testo «Nome file», scegliere «Cartella di lavoro abilitata per le macro di Excel» nel menu a discesa «Specifica formato di salvataggio» Elenco a discesa e infine fare clic sul pulsante «Salva». Vedere lo screenshot:

Uno screenshot della finestra di dialogo 'Salva con nome' in Excel che mostra l'opzione per salvare la cartella di lavoro come cartella di lavoro abilitata alle macro di Excel


3,4 Invia automaticamente un’email a un’ora specifica

Immagina di dover inviare ogni venerdì mattina alle 9 un'email con una cartella di lavoro contenente assegnazioni di attività a qualcuno, e di volerlo fare automaticamente in Excel senza dover utilizzare manualmente il client di posta elettronica. Questa sezione ti mostra come ottenere questo risultato.

1. Premere i tasti «Alt» + «F11» per aprire la finestra di «Microsoft Visual Basic for Applications».

2. Nella finestra «Microsoft Visual Basic for Applications», fai clic su «Inserisci» > «Modulo», quindi incolla il seguente codice VBA nella finestra del modulo.

Codice VBA 1: inviare la Foglio di lavoro corrente come allegato da Excel

Sub Timer()
    If Weekday(Date) = vbFriday Then
        SendWorkBook
        Application.OnTime TimeValue("09:00:00"), "Timer"
    Else
        Application.OnTime TimeValue("09:00:00"), "Timer"
    End If
End Sub

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. In questa finestra, fai doppio clic su «ThisWorkbook» nel riquadro «Progetto», quindi incolla il seguente codice VBA nella finestra «ThisWorkbook (Codice)».

Uno screenshot dell'editor del codice VBA con l'evento 'Workbook_Open' e la funzione 'Application.OnTime' per pianificare l'invio dell'email

Codice VBA 2: inviare automaticamente un'email a un orario specifico

Private Sub Workbook_Open()
    Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub

Note:

1) Nel codice VBA 1, «Friday» nella riga seguente indica che l'email verrà inviata automaticamente ogni venerdì;
If Weekday(Date) = vbFriday Then
2) Nei codici VBA 1 e 2, l'orario «09:00:00» indica che l'email verrà inviata alle 9:00 di un determinato giorno.
È possibile modificare il giorno e l'orario in base alle proprie esigenze.
3) Quando il codice viene eseguito, viene creata un'email. Se non si desidera che venga visualizzata la finestra del messaggio e si vuole inviarla direttamente, rimuovere la riga «.Display» dal codice VBA 1 e togliere l'«apostrofo» davanti alla riga «.Send».

4. Salvare i codici e quindi salvare la cartella di lavoro come cartella di lavoro abilitata alle macro di Excel, come indicato di seguito.

4,1) Fare clic su «File» > «Salva con nome» e scegliere quindi una cartella in cui salvare il file.
4,2) Nella finestra di dialogo «Salva con nome», rinominare il file come necessario nella casella di testo «Nome file», scegliere «Cartella di lavoro abilitata per le macro di Excel» nel menu a discesa «Specifica formato di salvataggio» Elenco a discesa e infine fare clic sul pulsante «Salva». Vedere lo screenshot:

Uno screenshot della finestra di dialogo 'Salva con nome' in Excel che mostra l'opzione per salvare la cartella di lavoro come cartella di lavoro abilitata alle macro di Excel

5. Apri la cartella di lavoro abilitata alle macro che hai salvato: un’email verrà creata o inviata automaticamente non appena si raggiungeranno il giorno e l’orario prestabiliti.


4. Argomenti aggiuntivi

Questa sezione raccoglie ulteriori argomenti che potrebbero emergere durante l’invio di email da Excel.

4,1 Inviare un intervallo di celle da Excel (con script VBA)

Immagina di avere una tabella delle vendite mensili in un foglio di lavoro Excel, come illustrato nell’immagine seguente, e di doverla inviare ad altre persone direttamente nel corpo dell’email o come allegato. Di seguito ti presentiamo due metodi semplici ed efficaci per farlo.

4,1.1 Inviare un intervallo come parte del corpo dell'email da Excel

È possibile utilizzare il seguente codice VBA per inviare un intervallo di celle direttamente nel corpo dell'email da Excel.

1. Premere i tasti «Alt» + «F11» per aprire la finestra di «Microsoft Visual Basic for Applications».

2. Nella finestra «Microsoft Visual Basic for Applications», fare clic su «Strumenti» > «Riferimenti», quindi selezionare la casella "Microsoft Outlook 16,0 Object Library" e confermare con «OK» nella finestra di dialogo «Riferimenti – VBAProject».

3. Fare clic su «Inserisci» > «Modulo», quindi incollare il seguente codice VBA nella finestra «Modulo (Codice)».

Codice VBA: inviare un intervallo di celle come parte del corpo dell'email da Excel

Sub SendARangeofCells()
'Updated by Extendoffice 20220809
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "test"
        .To = "xxx@aaa.com"
        .CC = "Email address"
        .BCC = "Email address"
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

Note: nel codice,

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con il vero Indirizzo Email del destinatario. Se sono necessari più Indirizzo Email, separarli con punti e virgola.
2) Nelle due righe seguenti:
.CC = «Email Address»
.BCC = «Email Address»
Se si desidera aggiungere i destinatari in copia (cc) e in copia nascosta (bcc), sostituire il testo "Indirizzo Email” nelle righe con i Indirizzo Email necessari.
Se non servono i destinatari in copia (cc) e in copia nascosta (bcc), aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.

4. Premere il tasto "F5" per eseguire il codice. Nella finestra di dialogo «Kutools per Excel» che appare, selezionare l'intervallo di celle da includere nel corpo dell'email, quindi fare clic su «OK». Vedere l'immagine:

Uno screenshot della finestra di dialogo Kutools for Excel in cui viene selezionato un intervallo di celle da inviare come parte del corpo dell'email

Verrà quindi creata automaticamente un'email di Outlook, con l'intervallo selezionato nel foglio di lavoro già inserito nel corpo del messaggio. Si veda l'immagine:

Uno screenshot di un'email di Outlook con l'intervallo selezionato da Excel inserito nel corpo del messaggio


4,1.2 Inviare un intervallo come allegato da Excel

Se desideri inviare un intervallo di celle di un foglio di lavoro come allegato da Excel, puoi provare il seguente codice VBA.

1. Premere i tasti «Alt» + «F11».

2. Nella finestra «Microsoft Visual Basic for Applications» aperta, fai clic su «Inserisci» > «Modulo», quindi incolla il seguente codice VBA nella finestra «Modulo (Codice)».

Codice VBA: inviare un intervallo come allegato da Excel

Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email address"
    .BCC = "Email address"
    .Subject = "Monthly sales for 2021"
    .Body = "Hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Note:

1) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con il vero Indirizzo Email del destinatario. Se sono necessari più Indirizzo Email, separarli con punti e virgola.
3) Modificare separatamente l'Oggetto email e il corpo dell'email nelle righe «.Subject = "Vendite mensili per 2021"» e «.Body = "Salve, La preghiamo di controllare e leggere questo documento."»;
3) Nelle due righe seguenti:
.CC = «email address»
.BCC = «email address»
Se si desidera aggiungere i destinatari in copia (cc) e in copia nascosta (bcc), sostituire il testo "Indirizzo Email” nelle righe con i Indirizzo Email necessari.
Se non servono i destinatari in copia (cc) e in copia nascosta (bcc), aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.

3. Premere il tasto "F5" per eseguire il codice. Nella finestra di dialogo «Kutools per Excel» che appare, selezionare l'intervallo di celle da inviare come allegato in un'email, quindi fare clic su «OK». Vedere l'immagine:

Uno screenshot della finestra di dialogo Kutools for Excel in cui viene selezionato un intervallo di celle da inviare come allegato in un'email

Verrà quindi creata automaticamente un'email di Outlook. L’intervallo di celle selezionato nel foglio di lavoro verrà salvato come cartella di lavoro Excel e allegato al messaggio. Vedere l’immagine:

Uno screenshot di un'email di Outlook con l'intervallo selezionato da Excel salvato come allegato


4,2 Inviare email quando si fa clic su un pulsante in Excel

Se si desidera fare clic su un pulsante di comando per attivare una macro che invii un'email da Excel, ad esempio inviare la Foglio di lavoro corrente come allegato ad altre persone facendo clic su un pulsante nel foglio di lavoro, è possibile seguire i passaggi descritti di seguito per ottenere questo risultato.

1. Fare clic su «Sviluppo» > «Inserisci» > «Pulsante di comando (controllo ActiveX)», quindi disegnare un pulsante di comando direttamente nel foglio di lavoro.

Suggerimento: se hai già un pulsante di comando, salta questo passaggio.

2. Premere i tasti «Alt» + "F11" per aprire la finestra di Microsoft Visual Basic for Applications. Una volta aperta, fare clic su «Inserisci» > «Modulo» e incollare il codice VBA — quello utilizzato per inviare il foglio di lavoro corrente come allegato da Excel — nella finestra «Modulo (Codice)».

Fai clic qui per ottenere il codice.

Nota: in questo caso, il nome della macro creata al passaggio 2 è «SendWorkbook».

3. Premere i tasti «Alt» + «Q» per chiudere la finestra di «Microsoft Visual Basic for Applications».

4. Ora è il momento di assegnare la macro al pulsante di comando. Fai clic con il tasto destro sul pulsante e seleziona “Visualizza codice” dal menu contestuale.

5. Si aprirà quindi la finestra «Microsoft Visual Basic for Applications»; nella finestra «Foglio (Codice)» appariranno le due righe seguenti.

Private Sub CommandButton1_Click()
End Sub

Uno screenshot della finestra di Microsoft Visual Basic for Applications che mostra il codice CommandButton1_Click

6. Inserisci il nome della macro esistente all'interno della subroutine associata al pulsante di comando.

Uno screenshot della modifica del codice VBA per assegnare una macro esistente al pulsante di comando

7. Premere i tasti «Alt» + «Q» per chiudere l'«Editor di Visual Basic», quindi fare clic su «Sviluppo» > «Modalità progettazione» per disattivare la modalità progettazione.

Uno screenshot della disattivazione della modalità progettazione nella scheda Sviluppo

Ora puoi fare clic sul pulsante di comando per inviare un'email con il foglio di lavoro corrente allegato.


4,3 Inviare email da un account email specifico

Di norma, quando si invia un'email da Excel tramite codice VBA, il mittente corrisponde all’account predefinito configurato in Outlook. Tuttavia, se hai impostato più account email in Outlook e desideri utilizzarne uno specifico—anziché quello predefinito—per inviare messaggi da Excel, il seguente codice VBA ti sarà utile.

In questo caso sono richiesti i seguenti codici.

Codice VBA 1:

Dim OutlookMail As Outlook.MailItem

Codice VBA 2:

For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next

Come si utilizzano i codici VBA indicati sopra?

1) Nel proprio codice, è necessario sostituire una riga come «Dim OutlookMail As Object» con il codice VBA 1;
2) Aggiungere il codice VBA 2 sotto la riga «On Error Resume Next» nel proprio codice. Specificare quindi il Indirizzo Email da utilizzare per inviare l'email nel codice VBA 2.

In questo esempio, si desidera specificare un determinato account email da cui inviare il foglio di lavoro corrente come allegato da Excel. Procedere come segue.

1. Premere i tasti «Alt» + "F11". Nella finestra «Microsoft Visual Basic for Applications», fare clic su «Strumenti» > «Riferimenti», quindi selezionare la casella "Microsoft Outlook 16,0 Object Library" e confermare con «OK» nella finestra di dialogo «Riferimenti – VBAProject».

Uno screenshot della finestra di dialogo 'Riferimenti – VBAProject' in Excel con l'opzione Microsoft Outlook 16.0 Object Library selezionata

2. Fare clic su «Inserisci» > «Modulo», quindi incollare il seguente codice VBA nella finestra «Modulo (Codice)».

Codice VBA: inviare la Foglio di lavoro corrente come allegato email da Excel tramite un account Outlook specifico

Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next
'End
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. Premere il tasto "F5" per eseguire il codice. Si aprirà quindi un messaggio email di Outlook, con il campo «Da» già compilato con l'account email specificato nel codice.


4,4 Inviare un'email quando viene raggiunta una data

Se si desidera inviare un'email in base a una specifica data di scadenza, come illustrato nell'immagine seguente, è presente una tabella di progetti: quando la data di scadenza nell'intervallo E2:E7 è uguale o precedente a 7 giorni rispetto a oggi (ipotizzando che la data odierna sia il 04/08/2022), verrà automaticamente inviata un'email ai responsabili dei progetti corrispondenti per avvisarli che il progetto sta per scadere.

1. Nel foglio di lavoro che contiene la tabella dei progetti, fai clic con il tasto destro sulla scheda del foglio e seleziona “Visualizza codice” dal menu contestuale.

2. Nella finestra «Microsoft Visual Basic for Applications» che si apre, incolla il seguente codice VBA nella finestra «Foglio (Codice)».

Codice VBA: inviare automaticamente un'email quando viene soddisfatta una Data di scadenza

Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "

"
            xMailBody = ""
            xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
            xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
            xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub

Note: nel codice,

1) Nelle righe seguenti, «E2:E7» contiene i Data di scadenza in base ai quali verranno inviate le email. «C2:C7» contiene i Indirizzo Email a cui verranno inviate le email. E «D2:D7» contiene le note da aggiungere nel corpo dell'email per avvisare i destinatari che il progetto sta per scadere. È possibile modificare gli intervalli in base alle proprie esigenze.
Set xRgDate = Range("E2:E7")
Set xRgSend = Range("C2:C7")
Set xRgText = Range("D2:D7")
2) La riga seguente indica che il Data di scadenza deve essere superiore a 1 giorno e inferiore o uguale a 7 giorni rispetto a oggi. È possibile modificarla in base alle proprie esigenze.
If CDate(xRgDateVal) - Date 0 Then
3) Nella riga «.To = xxx@aaa.com», sostituire «xxx@aaa.com» con il vero Indirizzo Email del destinatario. Se sono necessari più Indirizzo Email, separarli con punti e virgola.
4) Modificare l'Oggetto email nella riga «.Subject = "Foglio di lavoro modificato"».
5) Nelle due righe seguenti:
.CC = «Email Address»
.BCC = «Email Address»
Se si desidera aggiungere i destinatari in copia (cc) e in copia nascosta (bcc), sostituire il testo «Indirizzo Email» nelle righe con i Indirizzo Email necessari.
Se non servono i destinatari in copia (cc) e in copia nascosta (bcc), aggiungere semplicemente un apostrofo ' all'inizio di ciascuna riga.

3. Premere il tasto "F5" per eseguire il codice. Se la data di scadenza soddisfa le condizioni, verrà generata l’e-mail corrispondente. In questo caso, ne verranno create due, come mostrato nell’immagine seguente.

Uno screenshot di due email create automaticamente in base alle condizioni di corrispondenza della data di scadenza in Excel


5. Uno strumento pratico per inviare email in modo semplice e veloce direttamente da Excel

Se non hai dimestichezza con VBA, i metodi descritti in precedenza potrebbero sembrarti complessi. Ti consigliamo quindi di utilizzare la funzionalità Invia emaildi «Kutools per Excel», che ti permette di inviare email direttamente da Excel con pochi e semplici clic. Ecco come procedere.

Kutools per Exceloffre oltre 300 funzionalità avanzate per semplificare attività complesse, aumentando creatività ed efficienza.Integrato con funzionalità basate sull’IA, Kutools automatizza le attività con precisione, rendendo la gestione dei dati semplice e immediata.Informazioni dettagliate su Kutools per Excel...         Prova gratuita...
5,1 Creare facilmente un Elenco email contenente i campi email necessari

Prima di utilizzare la funzione Invia email, è necessario creare un Elenco email contenente i campi email richiesti. A questo scopo, la funzione Crea elenco di invio può rivelarsi estremamente utile.

1. Fare clic su «KUTOOLS PLUS» > «Crea elenco di invio».

2. Nella finestra «Crea elenco di invio» aperta, procedi come indicato di seguito.

2,1) Nella sezione «Seleziona le colonne da includere nell'elenco di invio», selezionare i campi necessari per l'email;
2,2) Nella sezione «Allegato», selezionare uno o più allegati che potrebbero servire;
2,3) Specificare un percorso in cui posizionare il Elenco email;
2,4) Fare clic sul pulsante «Crea». Vedere lo screenshot:

Verrà quindi creata una tabella di esempio denominata «Elenco email», come illustrato nell'immagine seguente.

3. Ora sostituisci i dati originali nella tabella di esempio con i tuoi.

È stata ora creata una tabella Elenco email. Applica subito la funzione «Invia email» per inviare messaggi direttamente da Excel in base ai campi configurati.

Kutools per Excel– Potenzia Excel con oltre 300 strumenti essenziali, rendendo il tuo lavoro più veloce e semplice, e sfrutta le funzionalità basate sull’IA per un’elaborazione dati più intelligente e una maggiore produttività.Scaricalo ora


5,2 Invia facilmente email includendo i campi creati nella Elenco email

Dopo aver creato l’elenco email ()fai clic per scoprire come), che include i campi necessari per le tue email, puoi ora inviare messaggi direttamente da Excel utilizzando questi dati.

1. Seleziona l’intero elenco email, quindi fai clic su «Kutools Plus» > «Invia email».

2. Nella finestra di dialogo «Invia email», procedi come segue per configurare l’invio.

2,1) I campi vengono inseriti automaticamente nella finestra di dialogo di ciascun campo in base a quelli specificati in Elenco email;
Suggerimento: se in questo momento non ti serve un determinato campo, scegli un’opzione vuota nella Elenco a discesa.
2,2) «Inserisci segnaposto» (facoltativo): se devi inserire informazioni variabili nel corpo dell’email.
Ad esempio, potresti dover inviare un'email a più destinatari con un nome personalizzato per ciascuno; posiziona il cursore nel corpo dell’email nel punto in cui desideri inserire il segnaposto, seleziona il campo «E: Nome» (o un altro campo nome presente nel tuo elenco di invio) e fai clic sul pulsante Inserisci «Segnaposto»;
Quando i destinatari ricevono l’email, il corpo del messaggio rimane lo stesso ma i nomi sono univoci per ciascuno.
2,3) Componi il corpo dell’email secondo le tue esigenze;
2,4) Assicurarsi che la casella «Invia utilizzando Outlook» sia selezionata;
2,5) Fare clic sul pulsante «Invia». Vedere lo screenshot:

3. A questo punto si aprirà la finestra di dialogo «Kutools per Excel», che mostra quante email sono state inviate; fai clic su «OK» per chiuderla.

Suggerimento: puoi consultare la cartella «Posta inviata» di Outlook per verificare le email inviate.


5,3 Invia facilmente email con corpo in HTML (inclusi collegamenti ipertestuali, immagini, ecc.)

Questa funzione Invia email ti permette di creare un'email in HTML, completa di collegamenti ipertestuali, immagini, diverse dimensioni e colori del carattere, e molto altro.

Dopo aver creato un elenco email contenente i campi email necessari, quando configuri la finestra di dialogo Invia email, puoi arricchire il contenuto del corpo utilizzando le opzioni disponibili sulla barra degli strumenti.

Vedi lo screenshot qui sotto:


5,4 Inserisci facilmente la firma predefinita di Outlook durante l’invio delle email

Nel metodo illustrato in precedenza, abbiamo mostrato un codice VBA per inviare email con la firma predefinita di Outlook. Con la funzione Invia email, invece, ti basta selezionare un’opzione per inserire automaticamente la firma predefinita di Outlook nelle email inviate da Excel.

Dopo aver creato un elenco email contenente i campi email necessari, quando configuri la finestra di dialogo Invia email, fai clic su «Opzioni» > «Usa le impostazioni della firma di Outlook».

Nota: assicurati che sia presente un segno di spunta accanto all’opzione «Usa le impostazioni della firma di Outlook».

Quando i destinatari ricevono l’email, vedranno la firma predefinita di Outlook in calce al corpo del messaggio.


5,5 Invia facilmente email da un account email specifico

Per inviare messaggi da Excel utilizzando un account email specifico anziché quello predefinito, la funzione Invia email ti consente di farlo in modo semplice e diretto.

Dopo aver creato un elenco email contenente i campi necessari, quando configuri la finestra di dialogo Invia email, fai clic su «Opzioni» > «Inviato da» e seleziona l’account email da cui desideri inviare i messaggi.

Nota: dopo aver selezionato l’account email, comparirà un segno di spunta accanto a esso.

Fai clic qui per scoprire di più sulla funzione Invia email.

Kutools per Excel– Potenzia Excel con oltre 300 strumenti essenziali, rendendo il tuo lavoro più veloce e semplice, e sfrutta le funzionalità basate sull’IA per un’elaborazione dati più intelligente e una maggiore produttività.Scaricalo ora

In conclusione, inviare email da Excel si rivela estremamente utile nel lavoro quotidiano. Questo articolo affronta in modo esaustivo l’invio di email da Excel; se conosci altri approcci o soluzioni ancora più semplici, lascia un commento per condividerli con noi!

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...


Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
  • Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!

Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.

Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.

ExcelWordOutlookTabsPowerPoint
  • Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
  • Funziona meglio insieme— produttività ottimizzata tra le app di Office
  • Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
  • Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi