Skip to main content

Guida Excel – Inviare email da Excel

Author: Siluvia Last Modified: 2025-05-30

Normalmente utilizziamo client di posta come Outlook, Gmail, ecc. per inviare email. Tuttavia, molte persone archiviano dati nelle cartelle di lavoro Excel e hanno la necessità di inviare tali dati ad altri mentre ci lavorano. Per questo motivo, può essere utile inviare email direttamente dalla cartella di lavoro Excel, risparmiando tempo rispetto all'utilizzo di un client di posta. Questa guida passo-passo ti mostrerà come inviare email da Excel in diverse situazioni.

Nota: Prima di applicare i metodi seguenti, è necessario configurare un client di posta Outlook sul tuo computer e impostarlo come client di posta predefinito.

 Indice dei contenuti: [ Nascondi ]

(Fai clic su qualsiasi voce dell'indice qui sotto o a destra per navigare al capitolo corrispondente.)

1. Le basi per inviare email da Excel

Questa sezione introduce le basi per inviare email da Excel.

1.1 Inviare email da Excel con le funzioni integrate di Excel

Se desideri solo inviare email semplici da Excel, includendo solo i campi A, Oggetto, Cc e corpo del messaggio, le funzioni integrate di Excel possono aiutarti.


1.1.1 Inviare email da Excel utilizzando una formula

Come mostrato nella tabella sottostante, per inviare email diverse da Excel in base ai campi forniti, puoi utilizzare i riferimenti di cella dei campi per creare diverse formule Collegamento ipertestuale. Dopo aver creato i collegamenti email, puoi cliccare sul collegamento desiderato per inviare automaticamente una email.

Nota: Se ci sono più destinatari nei campi A o Cc, separali con punto e virgola.

Questa sezione è suddivisa in quattro parti per mostrarti i passaggi per aggiungere indirizzo email, destinatari Cc, oggetto e corpo del messaggio separatamente alla formula Collegamento ipertestuale. Procedi come segue.

La sintassi e gli argomenti della funzione "COLLEGAMENTO.IPERTESTUALE" sono i seguenti.

Sintassi

COLLEGAMENTO.IPERTESTUALE(posizione_collegamento, [nome_amicovole])

Argomenti

"Posizione_collegamento" (obbligatorio): Il percorso e il nome del file del documento da aprire;
Suggerimento: In questa guida, tutti i campi necessari per una email, come indirizzo del destinatario, destinatari Cc, oggetto e corpo del messaggio, devono essere inseriti come primo argomento "posizione_collegamento".
"Nome_amicovole" (opzionale): Il valore visualizzato nella cella.

1.1.1.1 Aggiungere l'indirizzo email alla formula Collegamento ipertestuale

Qui utilizziamo "mailto:" come parte della formula per aggiungere un destinatario email. In questo esempio, l'indirizzo email del primo destinatario si trova nella cella B2, quindi dobbiamo aggiungere "mailto:" e fare riferimento a B2.

“mailto:”&B2

1. Seleziona una cella in cui visualizzare il collegamento ipertestuale. In questo caso, seleziono la cella F2.

2. Inserisci quindi la seguente formula.

=HYPERLINK("mailto:"&B2)

Nota: Se premi il tasto "Invio", verrà creato un collegamento ipertestuale come mostrato nello screenshot qui sotto. Quando clicchi sul collegamento, verrà creata una email di Outlook e l'indirizzo del destinatario verrà inserito automaticamente nel campo A.

L'indirizzo email del destinatario è ora stato aggiunto alla formula Collegamento ipertestuale. Continua con i passaggi successivi per aggiungere oggetto, destinatari Cc e corpo del messaggio secondo necessità.


1.1.1.2 Aggiungere destinatari Cc alla formula Collegamento ipertestuale

Per aggiungere destinatari Cc alla funzione Collegamento ipertestuale, aggiungi "?cc=" come parte della formula come segue.

"?cc=" & C2
dove C2 contiene l'indirizzo email del destinatario in Cc.

La formula nella cella F2 dovrebbe essere la seguente:

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


1.1.1.3 Aggiungere oggetto alla formula Collegamento ipertestuale

Per aggiungere l'oggetto alla funzione Collegamento ipertestuale, aggiungi "&subject=" come parte della formula come segue.

"&subject="& D2
dove D2 contiene l'oggetto della email.

La formula nella cella F2 ora dovrebbe apparire così:

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


1.1.1.4 Aggiungere testo del corpo con a capo alla formula Collegamento ipertestuale

L'ultimo passaggio è aggiungere il testo del corpo alla formula Collegamento ipertestuale. Come puoi vedere nell'esempio, due righe di testo in E2 sono separate da un a capo e desideri mantenere l'a capo nel corpo della email. Outlook riconosce l'a capo in questa situazione? Verifichiamolo.

Per aggiungere il testo del corpo alla formula Collegamento ipertestuale, devi aggiungere “&body=" come parte della formula come segue.

"&body="& E2
dove E2 contiene il testo del corpo della email.

La formula nella cella F2 ora viene visualizzata come segue:

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

Nota: Se premi il tasto "Invio" e clicchi sul collegamento, vedrai che il contenuto del corpo della email viene visualizzato sulla stessa riga.

Per visualizzare il corpo della email su righe separate, devi modificare il contenuto della cella aggiungendo il codice carattere di a capo "%0A" dove desideri inserire un'interruzione di riga. Vedi screenshot:


1.1.1.5 Specificare il testo da visualizzare per il collegamento ipertestuale

Nei passaggi precedenti, abbiamo completato l'argomento posizione_collegamento con i campi email. In questa sezione, andremo a completare il prossimo argomento [nome_amicovole].

In questo caso, voglio che la cella del collegamento ipertestuale visualizzi il testo “Email a xx”, dove xx è il nome del destinatario in A2. Quindi, la formula in F2 dovrebbe essere modificata come segue:

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

Premi il tasto "Invio" per ottenere il risultato.

Seleziona questa cella con la formula e trascina il "manico di riempimento automatico" verso il basso per creare altri collegamenti email. Vedi screenshot:


1.1.2 Inviare email da Excel con la funzione Collegamento ipertestuale

Oltre a utilizzare la formula Collegamento ipertestuale sopra, puoi creare manualmente un collegamento email con la funzione "Inserisci collegamento ipertestuale" in Excel. Questa sezione mostra i passaggi.

1. Fai clic destro su una email dove vuoi inserire un collegamento, seleziona "Collegamento" dal menu contestuale.

2. Nella finestra di dialogo "Inserisci collegamento ipertestuale" che si apre, configura come segue.

2.1) Seleziona "Indirizzo e-mail" nel pannello di sinistra.
2.2) Nella casella di testo "Testo da visualizzare", digita il testo che vuoi visualizzare nella cella;
Suggerimento: Non puoi utilizzare riferimenti di cella in questa finestra di dialogo, quindi devi digitare manualmente i campi email come segue.
2.3) Nella casella di testo "Indirizzo e-mail", digita i seguenti indirizzi email.
mailto:indirizzo email
Sostituisci il testo “indirizzo email” con il tuo vero indirizzo email. Se hai più indirizzi email, separali con punto e virgola.
2.4) Nella casella di testo "Oggetto", puoi specificare l'oggetto e il corpo della email direttamente qui. Configura come segue:
Oggetto email&body=Corpo email
In questo caso, digito "Vendita mensile&body=Ciao,%0AEmail ricevuta".
dove l'oggetto è Vendita mensile;
e
il corpo della email è:
Ciao,
Email ricevuta. ("%0A" è il codice carattere di a capo riconosciuto da Outlook)
2.5) Clicca sul pulsante "OK" per salvare il collegamento ipertestuale. Vedi screenshot:

Quando clicchi sul collegamento ipertestuale, verrà creata una email di Outlook con i campi A, Oggetto e Corpo specificati come mostrato nello screenshot qui sotto.

Note:

1) Con questo metodo, devi creare manualmente ciascun collegamento email.
2) Non puoi aggiungere il campo Cc alle email con questo metodo. Se hai bisogno del campo Cc, aggiungilo dalla nuova finestra email che si apre.

1.2 Inviare email a più destinatari nelle celle tramite script VBA

Nell'esempio sopra, puoi vedere che più indirizzi email sono visualizzati in una cella, separati da punto e virgola. Se hai un elenco di indirizzi email come mostrato nello screenshot qui sotto e vuoi inviare una email o email indipendenti a tutti, il seguente codice VBA può aiutarti.


1.2.1 Inviare una email a più destinatari nelle celle tramite script VBA

1. Nel foglio di lavoro che contiene tutti gli indirizzi email a cui vuoi inviare la email. Premi i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications".

2. Nella finestra "Microsoft Visual Basic for Applications", clicca su "Inserisci" > "Modulo", quindi incolla il seguente codice nella finestra "Modulo (Codice)".

Codice VBA: Invia email a un elenco di indirizzi 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. Premi il tasto "F5" per eseguire il codice e apparirà una finestra di dialogo "Kutools per Excel". Seleziona l'elenco degli indirizzi email e clicca su "OK".

A screenshot of the 'Kutools for Excel' dialog box asking for the email addresses list

Note:

1) Se non vuoi che la finestra di dialogo sopra appaia e vuoi specificare direttamente l'intervallo degli indirizzi email nel codice, sostituisci questa riga:
Set xRg = Application.InputBox("Seleziona l'elenco degli indirizzi:", "Kutools per Excel", xTxt, , , , ,8)
con
Set xRg = Range("A2:A7")
2) Puoi specificare il tuo oggetto e corpo della email nelle seguenti righe:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Per inviare direttamente la email senza aprire la finestra del nuovo messaggio, sostituisci questa riga:
.Display
con
.Send

Dopo aver eseguito il codice, tutti gli indirizzi email nell'intervallo selezionato vengono visualizzati nel campo A della finestra del messaggio. Vedi screenshot:

A screenshot of the email message window with all email addresses filled in the To field


1.2.2 Inviare email separatamente a ciascun destinatario elencato nelle celle tramite script VBA

Il codice sopra aggiunge tutti gli indirizzi email dell'intervallo selezionato nel campo A della finestra del messaggio. Se vuoi inviare email separatamente a ciascun indirizzo elencato nelle celle senza che i destinatari vedano gli indirizzi degli altri, puoi provare il seguente script VBA.

1. Nel foglio di lavoro che contiene tutti gli indirizzi email a cui vuoi inviare le email. Premi i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications".

2. Nella finestra "Microsoft Visual Basic for Applications", clicca su "Inserisci" > "Modulo", quindi incolla il seguente codice nella finestra Modulo (Codice).

Codice VBA: Invia email separatamente a ciascun indirizzo elencato 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. Poi clicca su "Strumenti" > "Riferimenti". Nella finestra di dialogo "Riferimenti – VBAProject", trova e seleziona la casella "Microsoft Outlook16.0 Object Library" e poi clicca su "OK" per salvare le modifiche.

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

4. Premi il tasto "F5" per eseguire il codice e apparirà una finestra di dialogo "Kutools per Excel". Seleziona l'elenco degli indirizzi email e clicca su "OK".

A screenshot of the 'Kutools for Excel' dialog box asking for the email address list selection

Note:

1) Se non vuoi che la finestra di dialogo sopra appaia e vuoi specificare direttamente l'intervallo degli indirizzi email nel codice, sostituisci questa riga:
Set xRg = Application.InputBox("Seleziona l'elenco degli indirizzi:", "Kutools per Excel", xTxt, , , , ,8)
con
Set xRg = Range("A2:A7")
2) Puoi specificare il tuo oggetto e corpo della email nelle seguenti righe:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Per inviare direttamente la email senza aprire le seguenti finestre di messaggio, sostituisci questa riga:
.Display
con
.Send

In questo esempio, ci sono sei indirizzi email nell'intervallo selezionato, quindi verranno create automaticamente sei finestre di messaggio di Outlook con l'indirizzo email separato elencato nel campo A come mostrato nello screenshot qui sotto.

A screenshot of multiple Outlook message windows with separate email addresses in the To field

5. Infine, clicca sul pulsante "Invia" per inviare le email una alla volta.


2. Inserire allegati o firma di Outlook nelle email inviate da Excel (con script VBA)

Questa sezione mostra come inserire allegati o la firma predefinita di Outlook nelle email inviate da Excel.

2.1 Inserire allegati nelle email inviate da Excel

Qui descriviamo i diversi casi di inserimento degli allegati e puoi scegliere il metodo in base alle tue esigenze. In questa sezione puoi imparare a (clicca su uno dei seguenti collegamenti per navigare al metodo corrispondente):


2.1.1 Inviare un determinato file come allegato via email

Puoi applicare il seguente codice VBA per inviare uno o più file in una cartella come allegati da Excel.

1. Premi i tasti "Alt" + "F11".

2. Nella finestra "Microsoft Visual Basic for Applications" che si apre, clicca su "Inserisci" > "Modulo". Poi incolla il seguente codice VBA nella finestra 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", sostituisci "xxx@aaa.com" con l'indirizzo email del destinatario;
2) Modifica separatamente oggetto e corpo della email nelle righe ".Subject = "test"" e ".HTMLBody = "test"";
3) Puoi aggiungere destinatari Cc e Bcc secondo necessità. Basta aggiungere le seguenti due righe sotto la riga ."To = xxx@aaa.com".
.CC = "indirizzo email"
.BCC = "indirizzo email"

3. Poi clicca su "Strumenti" > "Riferimenti". Nella finestra di dialogo "Riferimenti – VBAProject", trova e seleziona la casella "Microsoft Outlook16.0 Object Library" e poi clicca su "OK" per salvare le modifiche.

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

4. Premi il tasto "F5" per eseguire il codice, quindi si aprirà una finestra "Sfoglia". Seleziona i file che desideri allegare all'email e poi clicca su "OK".

A screenshot of the 'Browse' window for selecting files to attach to an email in Exce

Poi apparirà una finestra di messaggio. Puoi vedere che i file selezionati sono visualizzati come allegati nel campo Allegati.

A screenshot of the Outlook message window with selected files displayed as attachments


2.1.2 Inviare il foglio di lavoro corrente come allegato via email

Se vuoi inviare il foglio di lavoro corrente come allegato da Excel, puoi applicare lo script VBA in questa sezione.

1. Premi i tasti "Alt" + "F11".

2. Nella finestra "Microsoft Visual Basic for Applications" che si apre, clicca su "inserisci" > "Modulo". Poi incolla il seguente codice VBA nella finestra "Modulo (Codice)".

Codice VBA: Invia il foglio di lavoro corrente come allegato via email

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", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
2) Modifica separatamente oggetto e corpo della email nelle righe ".Subject = "kte features"" e ".Body = " Si prega di controllare e leggere questo documento."";
3) Nelle seguenti due righe:
.CC = "indirizzo email"
.BCC = "indirizzo email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo “"indirizzo email"” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

3. Premi il tasto "F5" per eseguire il codice, quindi il foglio di lavoro corrente viene salvato come cartella di lavoro Excel e inserito automaticamente in una finestra di messaggio come allegato. Vedi screenshot:

A screenshot of the Outlook message window with the current worksheet saved and attached as an Excel workbook

Nota: La cartella di lavoro allegata che contiene solo il foglio di lavoro corrente ha lo stesso nome della cartella di lavoro originale. Inoltre, l'orario in cui esegui il codice viene aggiunto anche al nome della cartella di lavoro.


2.1.3 Inviare la cartella di lavoro corrente come allegato via email

Dopo aver appreso il codice VBA per inviare il foglio di lavoro corrente come allegato da Excel, qui forniamo un altro script VBA per aiutarti a inviare l'intera cartella di lavoro come allegato. Procedi come segue.

1. Premi i tasti "Alt" + "F11".

2. Nella finestra "Microsoft Visual Basic for Applications" che si apre, clicca su "Inserisci" > "Modulo". Poi incolla il seguente codice VBA nella finestra Modulo (Codice).

Codice VBA: Invia la cartella 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", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
2) Modifica separatamente oggetto e corpo della email nelle righe ".Subject = "kte features"" e ".Body = " Si prega di controllare e leggere questo documento."";
3) Nelle seguenti due righe:
.CC = "indirizzo email"
.BCC = "indirizzo email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "indirizzo email” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

3. Premi il tasto "F5" per eseguire il codice, quindi la cartella di lavoro corrente viene inserita automaticamente nella finestra del messaggio come allegato. Vedi screenshot:

A screenshot of the Outlook message window with the current workbook attached automatically


2.1.4 Inviare l'intera cartella di lavoro come allegato PDF

Per la maggior parte delle persone, è comune salvare una cartella di lavoro Excel come file PDF e poi inviarla come allegato. In questa sezione, ti mostrerò come inviare email direttamente da Excel con la cartella di lavoro aperta come allegato PDF senza doverla salvare manualmente come file PDF.

1. Premi i tasti "Alt" + "F11".

2. Nella finestra "Microsoft Visual Basic for Applications" che si apre, clicca su "Inserisci" > "Modulo". Poi incolla il seguente codice VBA nella finestra 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", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
2) Modifica separatamente oggetto e corpo della email nelle righe .Subject = "test" e .Body = "test";
3) Nelle seguenti due righe:
.CC = "Indirizzo Email"
.BCC = "Indirizzo Email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "Indirizzo Email” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.
4) Il nome del file PDF sarà lo stesso della cartella di lavoro originale. Inoltre, l'orario in cui esegui il codice verrà aggiunto anche al nome della cartella di lavoro. Se non vuoi aggiungere il timestamp al nome del file, rimuovi & Format(Now, "dd-mmm-yy h-mm-ss") dalla seguente riga.
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) -1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"

3. Premi il tasto "F5" per eseguire il codice. Quindi la cartella di lavoro corrente viene inserita automaticamente in una nuova finestra di messaggio come allegato PDF. Vedi screenshot:

A screenshot of the Outlook message window with the current workbook attached as a PDF file


2.1.5 Inviare il foglio di lavoro corrente come allegato PDF

Ad esempio, c'è una cartella di lavoro chiamata “Vendite mensili” e hai completato una tabella di report vendite in un foglio chiamato “report vendite” e vuoi inviare questo foglio come file PDF ai tuoi colleghi. Il seguente codice VBA può aiutarti.

1. Premi i tasti "Alt" + "F11".

2. Nella finestra "Microsoft Visual Basic for Applications" che si apre, clicca su "inserisci" > "Modulo." Poi incolla il seguente codice VBA nella finestra 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", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
2) Modifica separatamente oggetto e corpo della email nelle righe .Subject = "test" e .Body = "test";
3) Nelle seguenti due righe:
.CC = "Indirizzo Email"
.BCC = "Indirizzo Email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "Indirizzo Email” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.
4) Il nome del file PDF sarà: nome della cartella di lavoro originale_nome del foglio di lavoro originale. In questo caso, il nome del PDF sarà Vendite mensili_report vendite.

3. Premi il tasto "F5" per eseguire il codice. Quindi il foglio di lavoro corrente viene inserito automaticamente in una nuova finestra di messaggio come allegato PDF. Vedi screenshot:

A screenshot of the Outlook message window with the current worksheet attached as a PDF file


2.2 Inserire la firma di Outlook nelle email inviate da Excel

Prendendo come esempio il caso sopra, applichi il codice VBA sopra per inviare il foglio di lavoro corrente come allegato PDF da Excel, ma la firma di Outlook non può essere aggiunta alla finestra del messaggio. Per mantenere la firma predefinita di Outlook nell'email inviata da Excel, il seguente metodo ti aiuterà.

Di seguito sono elencati due codici VBA.

Codice VBA1: Il codice aiuta a mantenere la firma di Outlook.

Codice VBA2: Il codice aiuta a inviare il foglio di lavoro corrente come allegato PDF.

Codice VBA1: Mantieni la firma di Outlook

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

Codice VBA2: 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. Normalmente, devi premere i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications".

2. Nella finestra "Microsoft Visual Basic for Applications", clicca su "Inserisci" > "Modulo". Poi incolla il codice VBA2 sopra nella finestra Modulo (Codice).

3. Per mantenere la firma predefinita di Outlook nell'email inviata da Excel, devi modificare il codice VBA2 come segue:

1) Sostituisci la riga ".Body" con "Codice VBA1";
2) Sposta la riga ".Display" sotto la riga "With OutlookMail (o With xMailOut in altri codici)". Vedi screenshot:

A screenshot showing the modified VBA code with the .Body line replaced and .Display placed under With OutlookMail

Ecco il codice completo dopo la modifica.

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. Otterrai così una nuova finestra di messaggio con il foglio di lavoro corrente allegato come file PDF, mentre la firma predefinita di Outlook verrà inserita automaticamente alla fine del corpo della email.

A screenshot of an email in Outlook with the default signature automatically inserted at the end of the email body


3. Inviare automaticamente email da Excel al verificarsi di una condizione (con script VBA)

Negli esempi sopra, devi eseguire manualmente il codice per inviare la email. Se vuoi che il codice venga eseguito automaticamente al verificarsi di una certa condizione, ad esempio quando una cella raggiunge un determinato valore, quando il valore di una cella cambia, quando viene raggiunta una data, ecc., la email verrà inviata automaticamente. Questa sezione elenca le condizioni più cercate dagli utenti Excel su Google per aiutarti a inviare automaticamente email da Excel al verificarsi di una determinata condizione.

3.1 Inviare automaticamente una email quando una cella raggiunge un determinato valore

Come mostrato nello screenshot qui sotto, supponiamo di avere una tabella vendite con la cella D6 che contiene il totale vendite. Vuoi inviare automaticamente una email al tuo capo in base al totale vendite, ad esempio creare o inviare una email automaticamente quando il totale vendite supera10000, ma se il totale vendite è uguale o inferiore a10000, non viene eseguita alcuna azione.

1. Nel foglio che contiene la tabella vendite, fai clic destro sulla scheda del foglio e clicca su "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 una 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 in base al cui valore verrà inviata la email.
2) ">10000" è la condizione, il che significa che una email verrà inviata quando il valore in D6 è maggiore di10000.
3) "Range(“D6”)" nella seguente riga significa che il corpo della email farà riferimento al valore in D6.
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4) Nella riga ".To = xxx@aaa.com", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
5) Modifica l'oggetto della email nella riga .Subject = "test".
6) Nelle seguenti due righe:
.CC = "Indirizzo Email"
.BCC = "Indirizzo Email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "Indirizzo Email” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

Da ora in poi, quando il valore nella cella D6 supera10000, verrà creata una email come mostrato nello screenshot qui sotto.

A screenshot of an email created in Outlook when the value in cell D6 exceeds 10000 in Excel


3.2 Inviare automaticamente una email quando il valore di una cella cambia

Come mostrato nello screenshot qui sotto, supponiamo di ricevere una cartella di lavoro che contiene le vendite mensili in diversi fogli e il totale vendite in un foglio. Devi verificare il totale vendite e, se viene modificato, inviare la cartella di lavoro al mittente e informarlo che la cella è stata modificata.

1. Nel foglio che contiene la tabella vendite, fai clic destro sulla scheda del foglio e clicca su "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 una 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 significa che quando il valore della cella B14 cambia, verrà inviata una email.
2) Nella riga ".To = xxx@aaa.com", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
3) Modifica l'oggetto della email nella riga .Subject = "Foglio di lavoro modificato".
4) Nelle seguenti due righe:
.CC = "Indirizzo Email"
.BCC = "Indirizzo Email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "Indirizzo Email” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

Da ora in poi, quando il valore nella cella B14 cambia, verrà creata automaticamente una email di Outlook come mostrato nello screenshot qui sotto.

A screenshot of an email created in Outlook when the value in cell B14 changes


3.3 Inviare automaticamente una email quando una cartella di lavoro viene salvata

Se hai una cartella di lavoro che deve essere condivisa con altri dopo la modifica, normalmente devi salvare la cartella di lavoro, avviare il client di posta, creare una nuova email con la cartella di lavoro allegata, compilare i campi e poi inviare la email. Questa sezione ti mostrerà un metodo per creare automaticamente una email ogni volta che salvi la cartella di lavoro. Procedi come segue.

1. Premi i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications".

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

Codice VBA: Invia automaticamente una 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", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
2) Modifica separatamente oggetto e corpo della email nelle righe ".Subject = "La cartella di lavoro è stata aggiornata"" e ".Body = "Ciao," & Chr(13) & Chr(13) & "Il file è ora aggiornato."".
3) Nelle seguenti due righe:
.CC = "Indirizzo Email"
.BCC = "Indirizzo Email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo “Indirizzo Email" nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

3. Da ora in poi, quando salvi la cartella di lavoro premendo i tasti "Ctrl" + "S" o cliccando sul pulsante "Salva", verrà creata automaticamente una email di Outlook. Vedrai che la cartella di lavoro corrente è allegata e i campi sono compilati con il contenuto specificato. Vedi screenshot:

A screenshot showing an Outlook email with the current workbook attached, ready to be sent automatically

Suggerimento: Se usi spesso questa cartella di lavoro, ti consigliamo di salvarla come "Cartella di lavoro abilitata per macro di Excel" per conservare lo script VBA per usi futuri. I passaggi sono i seguenti.

1) Clicca su "File" > "Salva con nome" e poi scegli una cartella dove salvare il file.
2) Nella finestra di dialogo "Salva con nome", rinomina il file come desideri nella casella "Nome file", scegli "Cartella di lavoro abilitata per macro di Excel" nell'elenco a discesa "Specificare formato di salvataggio" e infine clicca sul pulsante "Salva". Vedi screenshot:

A screenshot of the 'Save As' dialog in Excel showing the option to save the workbook as an Excel Macro-Enabled Workbook


3.4 Inviare automaticamente una email ad un orario specifico

Supponiamo che tu debba inviare una email con una cartella di lavoro di assegnazione compiti a qualcuno "ogni venerdì mattina alle9:00", e vuoi farlo automaticamente in Excel senza dover operare manualmente il client di posta. Questa sezione ti mostrerà il metodo per farlo.

1. Premi i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications".

2. Nella finestra "Microsoft Visual Basic for Applications", clicca su "Inserisci" > "Modulo." Poi incolla il seguente codice VBA nella finestra Modulo.

Codice VBA1: Invia la cartella 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 "QuestaCartellaDiLavoro" nel pannello "Progetto", quindi incolla il seguente codice VBA nella finestra "QuestaCartellaDiLavoro (Codice)".

A screenshot showing the VBA code editor with the 'Workbook_Open' event and 'Application.OnTime' function to schedule email sending

Codice VBA2: Invia automaticamente una email ad un orario specifico

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

Note:

1) Nel codice VBA1, "Venerdì" nella seguente riga significa che la email verrà inviata automaticamente ogni venerdì;
If Weekday(Date) = vbFriday Then
2) Nei codici VBA1 e2, l'orario "09:00:00" significa che la email verrà inviata alle9:00 di un determinato giorno.
Puoi modificare giorno e orario secondo le tue esigenze.
3) Quando il codice viene eseguito, verrà creata una email. Se non vuoi che la finestra del messaggio appaia e desideri inviarla direttamente, rimuovi la riga ".Display" dal codice VBA1 e rimuovi l'apostrofo prima della riga ‘.Send.

4. Salva i codici e poi salva la cartella di lavoro come cartella di lavoro abilitata per macro di Excel come segue.

4.1) Clicca su "File" > "Salva con nome" e poi scegli una cartella dove salvare il file.
4.2) Nella finestra di dialogo "Salva con nome", rinomina il file come desideri nella casella "Nome file", scegli "Cartella di lavoro abilitata per macro di Excel" nell'elenco a discesa "Specificare formato di salvataggio" e infine clicca sul pulsante "Salva". Vedi screenshot:

A screenshot of the 'Save As' dialog in Excel showing the option to save the workbook as an Excel Macro-Enabled Workbook

5. Apri la cartella di lavoro abilitata per macro che hai salvato, quindi una email verrà creata o inviata automaticamente quando arriva il giorno e l'orario impostato.


4. Argomenti aggiuntivi

Questa sezione raccoglie altri argomenti che potresti incontrare durante l'invio di email da Excel.

4.1 Inviare via email un intervallo di celle da Excel (con script VBA)

Supponiamo che ci sia una tabella delle vendite mensili in un foglio di lavoro Excel come mostrato nello screenshot qui sotto, e tu debba inviare questa tabella delle vendite mensili ad altri come testo del corpo della email o come allegato direttamente. Qui ti forniamo due metodi per farlo.

4.1.1 Inviare un intervallo come parte del corpo della email da Excel

Puoi eseguire il seguente codice VBA per inviare un intervallo di celle come parte del corpo della email da Excel

1. Premi i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications".

2. Nella finestra "Microsoft Visual Basic for Applications", clicca su "Strumenti" > "Riferimenti". Poi seleziona la casella "Microsoft Outlook16.0 Object Library" e clicca su "OK" nella finestra di dialogo "Riferimenti – VBAProject".

3. Clicca su "Inserisci" > "Modulo", poi incolla il seguente codice VBA nella finestra "Modulo (Codice)".

Codice VBA: Invia un intervallo di celle come parte del corpo della 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", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
2) Nelle seguenti due righe:
.CC = "Indirizzo Email"
.BCC = "Indirizzo Email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "Indirizzo Email” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

4. Premi il tasto "F5" per eseguire il codice. Nella finestra di dialogo "Kutools per Excel" che appare, seleziona l'intervallo di celle che desideri inviare come parte del corpo della email, poi clicca su "OK". Vedi screenshot:

A screenshot of the Kutools for Excel dialog box where a range of cells is selected to send as part of an email body

Verrà creata automaticamente una email di Outlook. Vedrai che l'intervallo selezionato nel foglio di lavoro è inserito nel corpo della email. Vedi screenshot:

A screenshot of an Outlook email with the selected range from Excel inserted into the email body


4.1.2 Inviare un intervallo come allegato da Excel via email

Se hai bisogno di inviare via email un intervallo di celle in un foglio di lavoro come allegato da Excel, puoi provare il seguente codice VBA.

1. Premi i tasti "Alt" + "F11".

2. Nella finestra "Microsoft Visual Basic for Applications" che si apre, clicca su "Inserisci" > "Modulo". Poi incolla il seguente codice VBA nella finestra "Modulo (Codice)".

Codice VBA: Invia 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", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
2) Modifica separatamente oggetto e corpo della email nelle righe" .Subject = "Vendite mensili per il2021"" e ".Body = "Ciao, controlla e leggi questo documento."";
3) Nelle seguenti due righe:
.CC = "indirizzo email"
.BCC = "indirizzo email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "indirizzo email” nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

3. Premi il tasto "F5" per eseguire il codice. Nella finestra di dialogo "Kutools per Excel" che appare, seleziona l'intervallo di celle che desideri inviare come allegato in una email, poi clicca su "OK". Vedi screenshot:

A screenshot of the Kutools for Excel dialog box where a range of cells is selected to send as an attachment in an email

Verrà creata automaticamente una email di Outlook. E l'intervallo di celle selezionato nel foglio di lavoro viene salvato come cartella di lavoro Excel e allegato nella finestra del messaggio. Vedi screenshot:

A screenshot of an Outlook email with the selected range from Excel saved as an attachment


4.2 Inviare email al clic di un pulsante in Excel

Se hai bisogno di cliccare su un pulsante di comando per attivare una macro che invia una email da Excel, ad esempio inviare la cartella di lavoro corrente come allegato ad altri cliccando su un pulsante nel foglio di lavoro, puoi seguire i passaggi seguenti per farlo.

1. Clicca su "Sviluppatore" > "Inserisci" > "Pulsante di comando (Controllo ActiveX)". Poi disegna un pulsante di comando nel foglio di lavoro.

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

2. Premi i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications". Nella finestra, clicca su "Inserisci" > "Modulo", poi incolla il codice VBA (il codice usato per inviare la cartella di lavoro corrente come allegato da Excel) nella finestra Modulo (Codice).

Clicca qui per ottenere il codice.

Nota: Qui il nome della macro creata al passaggio2 è "SendWorkbook".

3. Premi i tasti "Alt" + "Q" per chiudere la finestra "Microsoft Visual Basic for Applications".

4. Ora devi assegnare la macro al pulsante di comando. Fai clic destro sul pulsante di comando, seleziona "Visualizza codice" dal menu contestuale.

5. Poi si aprirà la finestra "Microsoft Visual Basic for Applications", vedrai che le seguenti due righe sono elencate nella finestra "Foglio (Codice)".

Private Sub CommandButton1_Click()
End Sub

A screenshot of the Microsoft Visual Basic for Applications window showing the CommandButton1_Click code

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

A screenshot of editing the VBA code to assign an existing macro to the command button

7. Premi i tasti "Alt" + "Q" per chiudere l'Editor Visual Basic e clicca su "Sviluppatore" > "Modalità progettazione" per disattivare la modalità progettazione.

A screenshot of turning off Design Mode in the Developer tab

Ora puoi cliccare sul pulsante di comando per inviare una email con la cartella di lavoro corrente come allegato nell'email.


4.3 Inviare email da un account email specifico

Normalmente, quando si invia una email da Excel tramite codice VBA, l'account email del mittente è quello predefinito in Outlook. Supponiamo che tu abbia configurato diversi account email in Outlook e voglia utilizzare un determinato account per inviare le email da Excel invece di quello predefinito. Il seguente codice VBA può aiutare.

I seguenti codici sono necessari in questo caso.

Codice VBA1:

Dim OutlookMail As Outlook.MailItem

Codice VBA2:

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 utilizzare i codici VBA sopra?

1) Nel tuo codice, devi sostituire la riga come "Dim OutlookMail As Object” con il codice VBA1;
2) Aggiungi il codice VBA2 sotto la riga "On Error Resume Next” nel tuo codice. Poi specifica l'indirizzo email che userai per inviare la email nel codice VBA2.

In questo esempio, specificheremo un determinato account email per inviare la cartella di lavoro corrente come allegato da Excel. Procedi come segue.

1. Premi i tasti "Alt" + "F11". Nella finestra "Microsoft Visual Basic for Applications", clicca su "Strumenti" > "Riferimenti". Poi seleziona la casella "Microsoft Outlook16.0 Object Library" e clicca su "OK" nella finestra di dialogo "Riferimenti – VBAProject".

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

2. Clicca su "Inserisci" > "Modulo". Poi incolla il seguente codice VBA nella finestra "Modulo (Codice)".

Codice VBA: Invia la cartella di lavoro corrente come allegato email da Excel tramite un account Outlook specificato

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. Premi il tasto "F5" per eseguire il codice. Poi apparirà una finestra di messaggio di Outlook, vedrai che il campo "Da" è compilato con l'account email specificato nel codice.


4.4 Inviare una email al raggiungimento di una data

Se hai bisogno di inviare una email in base a una data di scadenza specifica, ad esempio, come mostrato nello screenshot qui sotto, c'è una tabella progetti, "quando la data di scadenza nell'intervallo E2:E7 è uguale o inferiore a7 giorni da oggi (supponendo che la data attuale sia04/08/2022)", verrà inviata automaticamente una email ai responsabili di progetto corrispondenti per avvisarli che il progetto sta per scadere.

1. Nel foglio che contiene la tabella progetti, fai clic destro sulla scheda del foglio e clicca su "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 una email quando viene raggiunta 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 seguenti righe, "E2:E7" contiene le date di scadenza su cui invierai le email. "C2:C7" contiene gli indirizzi email a cui invierai le email. E "D2:D7" contiene le note che aggiungerai nel corpo della email per avvisare i destinatari che il progetto sta per scadere. Puoi modificare gli intervalli secondo necessità.
Set xRgDate = Range("E2:E7")
Set xRgSend = Range("C2:C7")
Set xRgText = Range("D2:D7")
2) La seguente riga significa che la data di scadenza deve essere superiore a1 giorno e uguale o inferiore a7 giorni da oggi. Puoi modificarla secondo necessità.
If CDate(xRgDateVal) - Date <=7 And CDate(xRgDateVal) - Date >0 Then
3) Nella riga ".To = xxx@aaa.com", sostituisci "xxx@aaa.com" con il vero indirizzo email del destinatario. Se hai bisogno di più indirizzi email, separali con punto e virgola.
4) Modifica l'oggetto della email nella riga ".Subject = "Foglio di lavoro modificato"".
5) Nelle seguenti due righe:
.CC = "Indirizzo Email"
.BCC = "Indirizzo Email"
Se vuoi aggiungere destinatari cc e bcc, sostituisci il testo "Indirizzo Email" nelle righe con gli indirizzi email necessari.
Se non hai bisogno dei destinatari cc e bcc, aggiungi semplicemente un apostrofo ' prima di ogni riga.

3. Premi il tasto "F5" per eseguire il codice. Se la data di scadenza soddisfa le condizioni, verrà creata la relativa email. In questo caso, verranno create due email come mostrato nello screenshot qui sotto.

A screenshot of two emails created automatically based on expiration date matching conditions in Excel


5. Uno strumento pratico per aiutarti a inviare facilmente email da Excel

Se sei un principiante con VBA, i metodi sopra potrebbero non essere facili da gestire. Qui ti consigliamo la funzione "Invia Email" di Kutools per Excel: con questa funzione puoi inviare facilmente email da Excel con pochi clic. Procedi come segue.

Kutools per Excel offre oltre 300 funzionalità avanzate per semplificare compiti complessi, aumentando creatività ed efficienza. Integrato con capacità di intelligenza artificiale, Kutools automatizza le attività con precisione, rendendo la gestione dei dati senza sforzo. Informazioni dettagliate su Kutools per Excel... Prova gratuita...
 5.1 Crea facilmente un elenco destinatari che includa i campi email necessari

Prima di utilizzare la funzione Invia Email, devi creare un elenco destinatari che contenga i campi email necessari. Qui la funzione Crea elenco di invio può aiutarti.

1. Clicca su "Kutools Plus" > "Crea elenco di invio".

2. Nella finestra "Crea elenco di invio" che si apre, configura come segue.

2.1) Nella sezione "Seleziona le colonne da includere nell'elenco di invio", seleziona i campi necessari per la tua email;
2.2) Nella sezione "Seleziona allegati da aggiungere", seleziona uno o più allegati necessari;
2.3) Specifica un intervallo dove posizionare l'elenco di invio;
2.4) Clicca sul pulsante "Crea". Vedi screenshot:

Verrà creato un esempio di tabella elenco destinatari come mostrato nello screenshot qui sotto.

3. Ora devi sostituire i dati originali dell'esempio con i tuoi dati.

Ora hai creato una tabella elenco destinatari. Procedi ad applicare la funzione "Invia Email" per inviare email da Excel in base ai campi creati.

Kutools per Excel - Potenzia Excel con oltre 300 strumenti essenziali. Goditi funzionalità AI gratuite per sempre! Ottienilo ora


 5.2 Invia facilmente email includendo i campi creati nell'elenco destinatari

Dopo aver creato l'elenco destinatari (clicca per sapere come) che contiene i campi necessari per le tue email, ora puoi inviare email da Excel con questi campi.

1. Seleziona l'intero elenco destinatari, clicca su "Kutools Plus" > "Invia Email".

2. Nella finestra di dialogo "Invia Email", configura come segue.

2.1) I campi vengono compilati automaticamente nella finestra di dialogo di ciascun campo in base ai campi specificati nell'elenco destinatari;
Suggerimento: Se non hai bisogno di un determinato campo in questo momento, scegli un'opzione vuota nell'elenco a discesa.
2.2)"Inserisci segnaposto" (opzionale): Se hai bisogno di inserire informazioni variabili nel corpo della email.
Ad esempio, potresti dover inviare una email a più destinatari con il nome personalizzato per ciascuno; posiziona il cursore nel corpo della email dove vuoi inserire il segnaposto, seleziona il campo “E: Nome” (o altro campo nome nel tuo elenco destinatari) e poi clicca sul pulsante "Inserisci segnaposto";
Quando i destinatari ricevono la email, il corpo rimane lo stesso ma i nomi sono unici per ciascuno.
2.3) Componi il corpo della email come desideri;
2.4) Assicurati che la casella "Invia utilizzando Outlook" sia selezionata;
2.5) Clicca sul pulsante "Invia". Vedi screenshot:

3. Poi apparirà una finestra di dialogo "Kutools per Excel" che ti dirà quante email sono state inviate, clicca su "OK" per chiudere la finestra.

Suggerimento: Puoi andare nella cartella "Posta inviata" di Outlook per controllare le email inviate.


5.3 Invia facilmente email con corpo HTML (inclusi collegamenti ipertestuali, immagini, ecc.)

La funzione Invia Email ti permette di creare una email HTML, che include collegamenti ipertestuali, immagini, diverse dimensioni e colori di carattere, ecc.

Dopo aver creato un elenco destinatari che includa i campi email necessari, quando configuri la finestra di dialogo Invia Email, puoi rendere il corpo del messaggio ricco utilizzando le opzioni della barra degli strumenti.

Vedi screenshot qui sotto:


5.4 Inserisci facilmente la firma predefinita di Outlook durante l'invio delle email

Nel metodo sopra, abbiamo mostrato un codice VBA per aiutarti a inviare email con la firma predefinita di Outlook. Qui, con la funzione Invia Email, basta selezionare un'opzione e la firma predefinita di Outlook verrà inserita nelle email inviate da Excel.

Dopo aver creato un elenco destinatari che includa i campi email necessari, quando configuri la finestra di dialogo Invia Email, clicca su "Opzioni" > "Usa impostazioni firma di Outlook".

Nota: Assicurati che sia presente un segno di spunta davanti all'opzione Usa impostazioni firma di Outlook.

Quando i destinatari ricevono la email, vedranno la firma predefinita di Outlook visualizzata alla fine del corpo della email.


5.5 Invia facilmente email da un account email specifico

Per utilizzare un determinato account email per inviare email da Excel invece di quello predefinito, la funzione Invia Email può aiutarti a farlo facilmente.

Dopo aver creato un elenco destinatari che includa i campi email necessari, quando configuri la finestra di dialogo Invia Email, clicca su "Opzioni" > "Inviato da", poi seleziona l'account email da cui inviare le email.

Nota: Dopo aver selezionato l'account email, verrà visualizzato un segno di spunta davanti ad esso.

Clicca qui per saperne di più su questa funzione Invia Email.

Kutools per Excel - Potenzia Excel con oltre 300 strumenti essenziali. Goditi funzionalità AI gratuite per sempre! Ottienilo ora

In conclusione, inviare email da Excel è molto utile nel lavoro quotidiano. Questo articolo copre argomenti completi sull'invio di email da Excel; se ci sono altri argomenti o soluzioni più semplici, lascia un commento per farmelo sapere.

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione 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 della stessa finestra, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!