Sommario
Questa esercitazione illustra come utilizzare una macro di Excel per inviare automaticamente un'email. Possiamo configurare la nostra funzione di mailing utilizzando VBA Quindi, utilizzando le macro VBA macro possiamo inviare una mail a più utenti contemporaneamente. Dobbiamo avere Prospettiva installato sul nostro dispositivo per inviare automaticamente le email con una macro. Poiché il codice che inseriremo utilizzerà Prospettiva per inviare le e-mail ai destinatari.
Scarica il quaderno di esercizi
Potete scaricare il quaderno di esercizi da qui.
Inviare e-mail automaticamente.xlsm3 esempi di macro di Excel per inviare e-mail automaticamente
Nel corso di questo articolo, dimostreremo 3 esempi adatti di utilizzo di macro excel per inviare automaticamente un'e-mail ai destinatari. Prima di iniziare a illustrare l'esempio, dobbiamo sistemare una cosa nel nostro foglio excel. Completate i passaggi seguenti prima di applicare la macro per inviare automaticamente un'e-mail.
FASI:
- Per prima cosa, dal vostro set di dati, andate su la scheda Sviluppatore Selezionare l'opzione Visual Basic .
- Successivamente, andare alla sezione Strumento e selezionare l'opzione Riferimenti .
- Una nuova finestra di dialogo denominata ' Riferimenti - VBAProject ' si aprirà.
- Infine, selezionare l'opzione ' Libreria di oggetti di Microsoft Office 16.0 ' e fare clic su OK .
1. Applicare la macro VBA di Excel per inviare automaticamente un'e-mail in base al valore della cella
In primo luogo, applicheremo l'excel VBA per inviare automaticamente un'email in base al valore di una particolare cella del nostro dataset. Per illustrare questo esempio utilizzeremo il seguente dataset. Scriveremo un codice che invierà automaticamente un'email se il valore della cella D6 è maggiore di 400 .
Vediamo i passaggi per eseguire questa azione.
FASI:
- Per cominciare, diritto - clicca sul foglio ' Basato su Cellula '.
- Inoltre, selezionare l'opzione ' Visualizza il codice '.
- L'azione sopra descritta aprirà una finestra vuota VBA Un altro modo per aprire la finestra del codice per quel foglio di lavoro è quello di premere Alt + F11 .
- Inoltre, digitate il seguente codice nella finestra del codice:
Dim rg As Range Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells.Count> 1 Then Exit Sub Set rg = Intersect(Range("D6"), Target) If rg Is Nothing Then Exit Sub If IsNumeric(Target.Value) And Target.Value> 400 Then Call send_mail_outlook End If End Sub send_mail_outlook() Dim z As Object Dim y As Object Dim b As String Set z =CreateObject("Outlook.Application") Set y = z.CreateItem(0) b = "Hello!" & vbNewLine & vbNewLine & _ "Hope you are well" & vbNewLine & _ "Visit our site Exceldemy" On Error Resume Next With y .To = "Address" .cc = "" .BCC = "" .Subject = "send mail based on cell value" .Body = b .Display End With On Error GoTo 0 Set y = Nothing Set z = Nothing End Sub
- Quindi, fare clic sul pulsante Correre o premere il tasto F5 per eseguire il codice.
- Una nuova finestra di dialogo denominata Macro apparirà.
- Successivamente, nella Nome della macro selezionare la macro ' inviare_mail_outlook '.
- Ora fate clic sul pulsante Correre pulsante.
- Infine, d'ora in poi, quando il valore della cella nella cella D6> 400 un'e-mail in Prospettiva genererà automaticamente dei messaggi con destinatari specifici. Dobbiamo solo fare clic sul pulsante Inviare per inviare l'e-mail.
Per saperne di più: Invio automatico di e-mail da Excel in base al contenuto delle celle (2 metodi)
2. Invio automatico di e-mail in base alla data di scadenza con la macro VBA
Nel secondo metodo, utilizzeremo il file Excel VBA per inviare automaticamente un'e-mail se la data di scadenza di un progetto è vicina. Per illustrare questo esempio, utilizziamo il seguente set di dati, che contiene le e-mail di diversi venditori, i messaggi e la data di scadenza del progetto.
Per eseguire questo metodo, seguite la seguente procedura.
FASI:
- Per prima cosa, fare clic con il tasto destro del mouse sul foglio Data .
- Quindi, selezionare l'opzione ' Codice '.
- Si apre una finestra vuota VBA per il foglio di lavoro attivo. Si può anche premere il tasto Alt + F11 per ottenere la finestra del codice.
- Quindi, inserire il seguente codice nella finestra del codice:
Public Sub Based_on_Date() Dim aRgDate As Range Dim aRgSend As Range Dim aRgText As Range Dim aRgDone As Range Dim aOutApp As Object Dim aMailItem As Object Dim aLastRow As Long Dim CrLf As String Dim aMailBody As String Dim zRgDateVal As String Dim zRgSendVal As String Dim aMailSubject As String Dim j As Long On Error Resume Next Set aRgDate = Application.InputBox("seleziona la colonna delle scadenze".data:", _ "Invia Mail Base su Data", , , , , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("seleziona la colonna dei destinatari dell'email:", _ "Invia Mail Base su Data", , , , , , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("seleziona la colonna del contenuto dell'email:", _ "Invia Mail Base su Data", , , , , , , , 8) If aRgText Is Nothing Then Exit Sub aLastRow =aRgDate.Rows.Count Set aRgDate = aRgDate(1) Set aRgSend = aRgSend(1) Set aRgText = aRgText(1) Set aOutApp = CreateObject("Outlook.Application") For j = 1 To aLastRow zRgDateVal = "" zRgDateVal = aRgDate.Offset(j - 1).Value If zRgDateVal "" Then If CDate(zRgDateVal) - Date 0 Then zRgSendVal = aRgSend.Offset(j - 1).Value aMailSubject = aRgText.Offset(j - 1).Value & " on " & zRgDateVal CrLf= "
" aMailBody = "" aMailBody = aMailBody & "Hello " & zRgSendVal & CrLf aMailBody = aMailBody & "Message: " & aRgText.Offset(j - 1).Value & CrLf aMailBody = aMailBody & "" Set aMailItem = aOutApp.CreateItem(0) With aMailItem .Subject = aMailSubject .To = zRgSendVal .HTMLBody = aMailBody .Display End With Set aMailItem = Nothing End If End If Next Set aOutApp = Nothing EndSub
- Ora, utilizzare il comando Correre o il tasto F5 per eseguire il codice.
- Si aprirà una nuova finestra di dialogo.
- Successivamente, nel campo di immissione di questa finestra di dialogo, selezionare l'intervallo della colonna della data di scadenza D$5:$D$9 Quindi, fare clic su OK .
- Si aprirà un'altra finestra di dialogo.
- Inoltre, nel campo di immissione selezionare l'intervallo di colonne B$5:$B$9 che contiene gli indirizzi e-mail e cliccare su OK .
- Verrà inoltre visualizzata un'altra finestra. Selezionare l'intervallo di messaggi $C$5:$C$9 nel campo di immissione della finestra pop.
- Alla fine, possiamo vedere risultati come la seguente immagine. Otteniamo 3 che vengono creati automaticamente in 3 diverse finestre di Prospettiva Questo non creerà posta per i primi due indirizzi e-mail, perché la data di scadenza di questi due progetti è passata.
Per saperne di più: Come inviare automaticamente e-mail da Excel in base alla data
Letture simili
- [Risoluzione]: Condivisione della cartella di lavoro non visualizzata in Excel (con semplici passaggi)
- Come inviare e-mail da un elenco Excel (2 modi efficaci)
- Come inviare un foglio di calcolo Excel modificabile via e-mail (3 metodi rapidi)
- Macro per inviare e-mail da Excel (5 esempi)
- Macro per inviare e-mail da Excel con il corpo (3 casi utili)
3. Usare la macro di Excel per inviare automaticamente e-mail con allegati
Nell'ultimo esempio, vedremo come sviluppare una macro excel per inviare automaticamente un'e-mail con allegati. Supponiamo di avere un allegato nell'immagine seguente. Vogliamo inviare questo allegato tramite un'e-mail utilizzando excel VBA Per fare questo abbiamo bisogno del percorso di questo file excel. Ecco i passi da seguire:
- Selezionare il file ' Allegato.xlsx ' '.
- Fare clic sull'opzione ' Percorso di copia '.
- Quindi, il percorso del file che otteniamo:
Inseriamo questo percorso nel nostro codice macro per inviare il file via e-mail. Seguite i passaggi seguenti per farlo.
FASI:
- In primo luogo, andare alla pagina Sviluppatore e selezionare l'opzione Visual Basic .
- Una nuova finestra denominata ' Progetto - Si aprirà VBAProject '.
- In secondo luogo, fare clic con il tasto destro del mouse sul nome del foglio.
- Quindi, selezionare Inserire > Modulo .
- Il comando precedente aprirà una finestra vuota VBA
- In terzo luogo, digitate il seguente codice nel modulo:
Sub send_Email_complete() Dim MyOutlook As Object Set MyOutlook = CreateObject("Outlook.Application") Dim MyMail As Object Set MyMail = MyOutlook.CreateItem(olMailItem) MyMail.To = "[email protected]" MyMail.cc = "[email protected]" MyMail.BCC = "[email protected]" MyMail.Subject = "Invio di un'email con VBA." MyMail.Body = "Questo è un esempio di email." Attached_File = "E:\Exceldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub
- Quindi, premere il tasto F5 o fare clic sul tasto Correre per eseguire il codice.
- Infine, il codice invierà l'allegato ai messaggi di posta elettronica forniti nel codice. Il codice invia i messaggi di posta elettronica tramite Prospettiva Quindi, fare clic sul pulsante Consentire per lasciare che Prospettiva invia l'allegato ai messaggi di posta elettronica indicati.
Per saperne di più: Come applicare una macro per inviare un'e-mail da Excel con un allegato
Conclusione
In conclusione, questo articolo mostra 3 esempi di utilizzo di excel VBA Scarica il foglio di lavoro di esempio fornito in questo articolo per mettere alla prova le tue capacità. Se hai domande, lascia un commento nel riquadro qui sotto. Il nostro team cercherà di rispondere al tuo messaggio il più presto possibile. Tieni d'occhio altri inventivi Microsoft Excel soluzioni in futuro.