Macro per inviare e-mail da Excel (5 esempi)

  • Condividi Questo
Hugh West

In questo articolo vi mostreremo 5 Macro a inviare l'e-mail da Excel Per dimostrare i nostri metodi, abbiamo selezionato un set di dati con un'ampia gamma di dati. 3 colonne : " Nome ", " Email ", e " Città ".

Scarica il quaderno di esercizi

Utilizzo della macro per l'invio di e-mail.xlsm

5 modi per usare la macro per inviare e-mail da Excel

1. Utilizzo della libreria di oggetti di Outlook per l'invio di e-mail

Per la prima Macro , abiliteremo " Libreria di oggetti di Microsoft Outlook 16.0 " a inviare un e-mail da Excel Inoltre, è necessario accedere al nostro sito web Prospettiva conto in Excel .

Passi:

All'inizio, si presenterà l'immagine del Visual Basic finestra.

  • In primo luogo, dal Sviluppatore selezionare Visual Basic .

In alternativa, è possibile premere ALT + F11 per visualizzare il VBA finestra.

  • In secondo luogo, da Strumenti selezionare " Riferimenti... ".

Un nuovo finestra di dialogo apparirà.

  • In terzo luogo, selezionare " Libreria di oggetti di Microsoft Outlook 16.0 ", e premere OK .

Pertanto, abiliteremo Libreria di oggetti di Outlook .

  • Da Inserire seleziona Modulo .

Scriveremo qui il nostro codice.

  • Dopodiché, digitate il seguente codice.
 Sub Macro_Send_Email() Dim eApp As Outlook.Application Dim eSource As String Set eApp = New Outlook.Application Dim eItem As Outlook.MailItem Set eItem = eApp.CreateItem(olMailItem) eItem.To = Range("C5").Value 'Questi elementi sono opzionali 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Invio di un'e-mail utilizzando VBA da Excel" eItem.Body = "Ciao," & vbNewLine &"Spero che questa e-mail ti trovi bene." & _ vbNewLine & vbNewLine & _ "Cordiali saluti," & vbNewLine & "Exceldemy" 'Se vuoi allegare questa cartella di lavoro, allora decommenta queste due righe dal basso 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'può usare .Send End Sub 

Scomposizione del codice VBA

  • Per prima cosa, chiamiamo il nostro Procedura secondaria Macro_Send_Email .
  • In secondo luogo, stiamo dichiarando il variabile tipi.
  • In terzo luogo, stiamo selezionando Prospettiva come il nostro Domanda per posta .
  • Poi, selezioniamo il nostro e-mail indirizzo di invio da cella C5 .
  • Dopo di che, il e-mail è impostato nel nostro codice.
  • Infine, " Proprietà di visualizzazione VBA " viene utilizzato per visualizzare il nostro e-mail Pertanto, è necessario premere Inviare manualmente a inviare il e-mail Inoltre, possiamo usare " Inviare la proprietà " a inviare e-mail senza visualizzare.
  • Dopo di che, Risparmiare e chiudere il Modulo .

Ora, noi Correre il codice.

  • In primo luogo, dal Sviluppatore selezionare Macro .

Il Finestra di dialogo Macro apparirà.

  • In secondo luogo, selezionare il nostro Procedura secondaria " Macro_Send_Email ".
  • Infine, premere Correre .

Dopo l'esecuzione del codice, si vedrà l'opzione e-mail Possiamo fare clic su Inviare Così, vi abbiamo mostrato il primo metodo di invio un e-mail da eccellere utilizzando VBA .

Per saperne di più: Inviare e-mail da Excel VBA senza Outlook (4 esempi)

2. Macro per l'invio di e-mail dall'account Gmail in Excel

Per questo metodo, abbiamo bisogno di accesso alle app meno sicuro dal Gmail Inoltre, dovremo abilitare l'account di Microsoft CDO dal Riferimenti menu.

Passi:

  • In primo luogo, come mostrato nel primo metodo , portare in alto il Finestra di dialogo Riferimenti .
  • In secondo luogo, selezionare " Libreria Microsoft CDO per Windows 2000 " e premere OK .

  • In terzo luogo, andare su Sicurezza dal vostro Impostazioni dell'account Google .
  • Infine, accendere Accesso alle app meno sicuro .

Ora, inseriamo il nostro Macro codice.

  • In primo luogo, come mostrato nel metodo 1 , portare in alto il Modulo e digitare questo codice.
 Option Explicit Sub Send_Gmail_Macro() Dim cMail As Object Dim cConfig As Object Dim sConfig As Variant Dim cSubject As String Dim cFrom As String Dim cTo As String Dim cCC As String Dim cBcc As String Dim cBody As String cSubject = "Macro per l'invio di Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Ciao. Questo è un messaggio automatico. Per favore non rispondere" Set cMail =CreateObject("CDO.Message") On Error GoTo Error_Handling Set cConfig = CreateObject("CDO.Configuration") cConfig.Load -1 Set sConfig = cConfig.Fields With sConfig .Item("//schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("//schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("//schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1.Item("//schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" .Item("//schemas.microsoft.com/cdo/configuration/sendpassword") = "SenderGmailPassword" .Item("//schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("//schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With With cMail Set .Configuration = cConfig End With cMail.Subject =cSubject cMail.From = cFrom cMail.To = cTo cMail.TextBody = cBody cMail.CC = cCC cMail.BCC = cBcc cMail.Send Error_Handling: If Err.Description "" Then MsgBox Err.Description End Sub 

Scomposizione del codice VBA

  • Per prima cosa, chiamiamo il nostro Procedura secondaria Invia_Gmail_Macro .
  • In secondo luogo, stiamo dichiarando il variabile tipi.
  • In terzo luogo, stiamo impostando il e-mail nel nostro codice.
  • Poi, forniamo il nostro credenziali di accesso È necessario digitare il proprio ID e Password qui.
  • Dopo di che, ci siamo proposti di porto a 465 .
  • Infine, siamo invio nostro e-mail .
  • Allora, Risparmiare e Correre questo codice.

Siamo riusciti a inviato un e-mail al nostro indirizzo.

Per saperne di più: Macro per inviare e-mail da Excel con il corpo (3 casi utili)

3. Inviare e-mail a un elenco di destinatari da una colonna

Per il terzo metodo, si procederà a inviare e-mail a 7 persone che utilizzano Macro da Excel Troveremo l'ultimo fila del nostro set di dati, quindi il nostro codice funzionerà anche per un elenco più lungo. inviare e-mail dal cella C5:C10 gamma.

Passi:

  • In primo luogo, come mostrato nel metodo 1 , portare in alto il Modulo e digitare questo codice.
 Sub Macro_Send_Email_From_A_List() Dim pApp As Object Dim pMail As Object Dim z As Integer Dim eList As String Dim eRow As Long Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) eRow = Range("C:C").SpecialCells(xlCellTypeLastCell).Row - 1 With pMail eList = "" For z = 5 To eRow If eList = "" Then eList = Cells(z, 3).Value Else eList = eList & ";" & Cells(z,3).Value End If Next z .BCC = eList .Subject = "Hello There" .Body = "This Message is brought to you by Exceldemy." .Display 'You can use .Send here End With Set pMail = Nothing Set pApp = Nothing End Sub 

Scomposizione del codice VBA

  • Per prima cosa, chiamiamo il nostro Procedura secondaria Macro_Send_Email_From_A_List .
  • In secondo luogo, stiamo dichiarando il variabile tipi.
  • In terzo luogo, stiamo selezionando Prospettiva come il nostro Domanda per posta .
  • Poi, stiamo trovando il ultima riga , che è 10 per il nostro set di dati.
  • Dopo di che, come il nostro e-mail inizia da fila 5 abbiamo inserito 5 come valore iniziale per " variabile z "Inoltre, il nostro e-mail sono sul Colonna C , quindi abbiamo inserito 3 all'interno del Cellule proprietà.
  • Poi, impostiamo il parametro e-mail nel nostro codice.
  • Infine, " .Visualizza " viene utilizzato per visualizzare il nostro e-mail Pertanto, è necessario premere Inviare manualmente a inviare il e-mail Inoltre, possiamo usare " .Invia " a inviare l'e-mail senza visualizzare.
  • Allora, Risparmiare e Correre il Modulo .

Possiamo vedere che tutti i nostri e-mail sono visualizzati in BCC In conclusione, possiamo semplicemente premere Inviare per completare il nostro compito.

Per saperne di più: Come inviare e-mail da un elenco Excel (2 modi efficaci)

Letture simili

  • Come inviare automaticamente un'e-mail quando la condizione è soddisfatta in Excel
  • Come condividere file Excel online (2 metodi semplici)
  • Inviare automaticamente un'e-mail di promemoria da un foglio di lavoro Excel utilizzando VBA
  • Come inviare un'e-mail se le condizioni sono soddisfatte in Excel (3 metodi semplici)
  • Come attivare la condivisione della cartella di lavoro in Excel

4. Macro per l'invio di un singolo foglio tramite e-mail

In questa sezione inviare il Foglio di lavoro attivo alla nostra persona di destinazione. A questo punto, dovremo scegliere la posizione del nostro Excel file.

Passi:

  • In primo luogo, come mostrato nel metodo 1 , portare in alto il Modulo e digitare questo codice.
 Sub Macro_Email_Single_Sheet() Dim pApp As Object Dim pMail As Object Dim zBook As Workbook Dim fxName As String 'Dim zSheet As Worksheet 'Dim shtName As String Application.ScreenUpdating = False ActiveSheet.Copy Set zBook = ActiveWorkbook fxName = zBook.Worksheets(1).Name On Error Resume Next Kill "C:\Users\Rafi\OneDrive\Desktop\Softeko\47" & fxName On Error GoTo 0 zBook.SaveAsFileName:="C:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = "[email protected]" .Subject = "Macro per l'invio di un singolo foglio via email" .Body = "Dear RecieverName," & vbCrLf & vbCrLf & _ "Your requested file is attached" .Attachments.Add zBook.FullName .Display End WithzBook.ChangeFileAccess Mode:=xlReadOnly Kill zBook.FullName zBook.Close SaveChanges:=False Application.ScreenUpdating = True Set pMail = Nothing Set pApp = Nothing End Sub 

Scomposizione del codice VBA

  • Per prima cosa, chiamiamo il nostro Procedura secondaria Macro_Email_Single_Sheet .
  • In secondo luogo, stiamo dichiarando il variabile tipi.
  • In terzo luogo, stiamo copiando il Scheda attiva e salvarlo come un file separato Libro di lavoro .
  • Dopo di che, stiamo selezionando Prospettiva come il nostro Domanda per posta .
  • Poi, impostiamo il parametro e-mail nel nostro codice.
  • Dopo di che, abbiamo collegato il file Foglio al e-mail .
  • Infine, utilizzare " .Visualizza " per visualizzare il nostro e-mail Pertanto, è necessario premere Inviare manualmente a inviare il e-mail Inoltre, possiamo usare " .Invia " a inviare l'e-mail senza visualizzare.
  • Allora, Risparmiare e Correre il Modulo .

Vedremo il Foglio nome nella finestra. Premere Inviare per completare il compito.

Possiamo aperto il file e verificare che il nostro codice funzioni.

Per saperne di più: Come inviare un foglio Excel modificabile via e-mail (3 metodi rapidi)

5. Macro per inviare e-mail in base al valore della cella

Per l'ultimo metodo, abbiamo cambiato un po' il nostro set di dati, aggiungendo l'elemento " Pagamento Dovuto " colonna al set di dati. In questo caso, ci inviare un e-mail che contiene la città " Obama "Possiamo vedere chiaramente che fila 5 lo contiene, quindi lo inviare un e-mail solo a quella persona.

Passi:

  • In primo luogo, come mostrato nel metodo 1 , portare in alto il Modulo e digitare questo codice.
 Option Explicit Sub Send_Email_Condition() Dim xSheet As Worksheet Dim mAddress As String, mSubject As String, eName As String Dim eRow As Long, x As Long Set xSheet = ThisWorkbook.Sheets("Conditions") With xSheet eRow = .Cells(.Rows.Count, 5).End(xlUp).Row For x = 5 To eRow If .Cells(x, 4)>= 1 And .Cells(x, 5) = "Obama" Then mAddress = .Cells(x, 3) mSubject = "Request For Payment" eName =.Cells(x, 2) Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName) End If Next x End With End Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String) Dim pApp As Object Dim pMail As Object Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = mAddress .CC = "" .BCC = "" .Subject = mSubject .Body ="Sig./Sig.ra " & eName & ", La preghiamo di pagare l'importo dovuto entro la prossima settimana." _ & vbNewLine & "L'importo esatto è allegato a questa e-mail." .Attachments.Add ActiveWorkbook.FullName 'Invia il file via e-mail .Display 'Possiamo usare .Send anche qui End With Set pMail = Nothing Set pApp = Nothing End Sub 

Scomposizione del codice VBA

  • Per prima cosa, chiamiamo il nostro primo Procedura secondaria Condizione_invio_email .
  • In secondo luogo, stiamo dichiarando il Variabile tipi e impostazione " Le condizioni " come nostro Foglio .
  • In terzo luogo, l'ultimo fila Inoltre, il nostro valore parte da fila 5 per questo motivo abbiamo messo riga 5 all'ultimo fila nel nostro codice.
  • Quindi, richiamare il nostro secondo Procedura secondaria Invia_email_con_Multipla_Condizione .
  • Dopo di che, stiamo selezionando Prospettiva come il nostro Domanda per posta .
  • Poi, il e-mail è impostato nel nostro codice.
  • Qui, stiamo collegando il file Excel con il file e-mail utilizzando il Allegato metodo.
  • Dopo di che, " .Visualizza " viene utilizzato per visualizzare il nostro e-mail Pertanto, è necessario premere Inviare manualmente a inviare il e-mail Inoltre, possiamo usare " .Invia " a inviare l'e-mail senza visualizzare.
  • Allora, Risparmiare e Correre il Modulo .

In conclusione, vi abbiamo mostrato un altro metodo di invio un e-mail utilizzando Macro VBA da Excel .

Per saperne di più: Invio automatico di e-mail da Excel in base al contenuto delle celle (2 metodi)

Sezione pratica

Abbiamo aggiunto set di dati pratici per ogni metodo nel file Excel file.

Conclusione

Vi abbiamo mostrato 5 metodi da utilizzare Macro a inviare un e-mail da Excel Grazie per aver letto, continuate a eccellere!

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.