Il nostro modello di codice ti aiuterà a configurare e-mail automatiche da Excel utilizzando Collaboration Data Objects (CDO) e script VBA.

Come inviare e-mail da un foglio di calcolo Excel utilizzando gli script VBA

Annuncio pubblicitario Per inviare e-mail 5 modi per scrivere e-mail professionali che fanno risparmiare tempo e fatica 5 modi per scrivere e-mail professionali che fanno risparmiare tempo e fatica È un'abilità sapere come scrivere e-mail professionali che fanno risparmiare tempo e ottenere risposte.

Annuncio pubblicitario

Per inviare e-mail 5 modi per scrivere e-mail professionali che fanno risparmiare tempo e fatica 5 modi per scrivere e-mail professionali che fanno risparmiare tempo e fatica È un'abilità sapere come scrivere e-mail professionali che fanno risparmiare tempo e ottenere risposte. Lascia che questi modelli di email ti aiutino. Leggi di più da Microsoft Excel richiede solo alcuni semplici script. Aggiungi questa funzionalità ai tuoi fogli di calcolo e puoi davvero migliorare quanto puoi realizzare in Excel.

Sblocca subito il cheat sheet "Formule Excel essenziali"!

Questo ti iscriverà alla nostra newsletter

Inserisci la tua e-mail di sblocco Leggi la nostra politica sulla privacy

Abbiamo coperto molte fantastiche macro di Excel, che possono fare le stesse cose che possono fare gli script VBA, ma senza la necessità di conoscenze di programmazione. Ma ci sono molte cose avanzate che puoi fare solo con VBA, come la creazione di un rapporto di foglio di calcolo con tutte le informazioni del tuo PC.

Preferisci guardare questo tutorial come video? Ti abbiamo coperto!

Perché inviare e-mail da Excel?

Ci sono molte ragioni per cui potresti voler inviare un'e-mail da Microsoft Excel.

Forse hai uno staff che aggiorna documenti o fogli di calcolo su base settimanale e ti piacerebbe ricevere una notifica via e-mail del termine di tali aggiornamenti. Oppure potresti avere un foglio di lavoro con i contatti e vuoi inviare una e-mail a tutti contemporaneamente.

Probabilmente stai pensando che lo scripting di una trasmissione e-mail da Excel sarà complicato. Non è affatto così.

La tecnica in questo articolo utilizzerà una funzionalità che è disponibile da molto tempo in Excel VBA, Collaboration Data Objects (CDO).

Collaboration Data Objects (CDO) in Excel

CDO è un componente di messaggistica utilizzato in Windows sin dalle prime generazioni del sistema operativo. Una volta si chiamava CDONTS, e poi con l'avvento di Windows 2000 e XP, è stato sostituito con "CDO per Windows 2000". Questo componente è già incluso nell'installazione VBA in Microsoft Word o Excel ed è pronto per l'uso.

L'uso del componente rende estremamente semplice l'invio di e-mail dai prodotti Windows con VBA. In questo esempio, utilizzerai il componente CDO in Excel per inviare un'email che fornirà i risultati da una cella Excel specifica.

Passaggio 1: creare una macro VBA

Il primo passo è andare alla scheda Sviluppatore Excel.

Nella scheda Sviluppatore, fai clic su Inserisci nella casella Controlli, quindi seleziona un pulsante di comando.

aggiungendo il pulsante in Excel

Disegnalo nel foglio e quindi crea una nuova macro facendo clic su Macro nella barra degli strumenti Sviluppatore.

aggiungi macro per pulsante di comando

Quando fai clic sul pulsante Crea, si aprirà l'editor VBA.

Aggiungi il riferimento alla libreria CDO navigando su Strumenti > Riferimenti nell'editor.

aggiunta di riferimenti in Excel

Scorri l'elenco verso il basso fino a trovare Microsoft CDO per Windows 2000 Library . Seleziona la casella di controllo e fai clic su OK .

aggiunta di cdo per riferimento a windows

Quando fai clic su OK, prendi nota del nome della funzione in cui stai incollando lo script. Ne avrai bisogno in seguito.

Passaggio 2: impostare i campi “Da” e “A” del CDO

Per fare ciò, devi prima creare gli oggetti di posta e impostare tutti i campi necessari per inviare l'e-mail.

Tieni presente che mentre molti dei campi sono opzionali, i campi Da e A sono obbligatori.

 Dim CDO_Mail As Object Dim CDO_Config As Object Dim SMTP_Config As Variant Dim strSubject As String Dim strFrom As String Dim strTo As String Dim strCc As String Dim strBcc As String Dim strBody As String strSubject = "Results from Excel Spreadsheet" strFrom = " " strTo = " " strCc = "" strBcc = "" strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1)) 

La cosa interessante di questo è che puoi creare qualsiasi stringa che desideri personalizzare un messaggio di posta elettronica completo e assegnarlo alla variabile strBody .

Collega i componenti del messaggio utilizzando la stringa & per inserire i dati di uno qualsiasi dei fogli di Microsoft Excel direttamente nel messaggio e-mail, proprio come mostrato sopra.

Passaggio 3: configurare CDO per l'utilizzo di un SMTP esterno

La prossima sezione di codice è dove configurerai CDO per usare qualsiasi server SMTP esterno per inviare l'e-mail.

Questo esempio è un'impostazione non SSL tramite Gmail. CDO è compatibile con SSL, ma non rientra nell'ambito di questo articolo. Se devi utilizzare SSL, questo codice avanzato in Github può aiutarti.

 Set CDO_Mail = CreateObject("CDO.Message") On Error GoTo Error_Handling Set CDO_Config = CreateObject("CDO.Configuration") CDO_Config.Load -1 Set SMTP_Config = CDO_Config.Fields With SMTP_Config .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = " " .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With With CDO_Mail Set .Configuration = CDO_Config End With 

Passaggio 4: finalizzare l'installazione del CDO

Ora che hai configurato la connessione al server SMTP per l'invio dell'e-mail, tutto ciò che devi fare è compilare i campi appropriati per l' oggetto CDO_Mail ed emettere il comando Invia .

Ecco come lo fai:

 CDO_Mail.Subject = strSubject CDO_Mail.From = strFrom CDO_Mail.To = strTo CDO_Mail.TextBody = strBody CDO_Mail.CC = strCc CDO_Mail.BCC = strBcc CDO_Mail.Send Error_Handling: If Err.Description "" Then MsgBox Err.Description 

Non ci saranno caselle pop-up o messaggi di avviso di sicurezza, che possono accadere quando si ricorre all'uso dell'oggetto di posta di Outlook.

CDO mette semplicemente insieme l'e-mail e utilizza i dettagli di connessione del server SMTP per attivare il messaggio. È il modo più semplice per incorporare la posta elettronica negli script VBA di Microsoft Word o Excel.

Per connettere il tuo pulsante di comando a questo script, vai nell'editor di codice e fai clic su Foglio1 per visualizzare il codice VBA per quel foglio di lavoro.

Digita il nome della funzione in cui hai incollato lo script sopra.

collegare il pulsante di comando allo script

Ecco come appariva il messaggio che ho ricevuto nella mia posta in arrivo:

excel email ricevuta

Nota : se si riceve un errore che indica Il trasporto non è riuscito a connettersi al server, assicurarsi di aver inserito nome utente, password, server SMTP e numero di porta corretti nelle righe di codice elencate sotto Con SMTP_Config .

Portalo oltre e automatizza l'intero processo

Va bene e va bene essere in grado di inviare e-mail da Excel con il semplice tocco di un pulsante. Tuttavia, potresti voler utilizzare questa funzionalità su base regolare, nel qual caso avrebbe senso automatizzare il processo 5 risorse per macro di Excel per automatizzare i tuoi fogli di calcolo 5 risorse per macro di Excel per automatizzare i tuoi fogli di calcolo Stai cercando macro di Excel? Ecco cinque siti che hanno quello che stai cercando. Leggi di più .

Per fare ciò, dovrai apportare una modifica alla macro. Vai all'editor di Visual Basic e copia e incolla l'intero codice che mettiamo insieme.

Quindi, selezionare ThisWorkbook dalla gerarchia del progetto .

Dai due campi a discesa nella parte superiore della finestra del codice, selezionare Cartella di lavoro e selezionare Apri dal menu a discesa Metodi.

Incolla lo script e-mail sopra in Private Sub Workbook_Open () .

Ciò eseguirà la macro ogni volta che si apre il file Excel.

Incolla lo script dell'email

Quindi, aprire Utilità di pianificazione .

Utilizzerai questo strumento per chiedere a Windows di aprire automaticamente il foglio di calcolo a intervalli regolari, a quel punto verrà avviata la tua macro, inviando l'e-mail.

creare attività di base nell'utilità di pianificazione

Seleziona Crea attività di base ... dal menu Azione e segui la procedura guidata fino a raggiungere la schermata Azione .

Seleziona Avvia un programma e fai clic su Avanti .

selezionare l'utilità di pianificazione del programma

Utilizzare il pulsante Sfoglia per trovare la posizione di Microsoft Excel sul computer o copiare e incollare il percorso nel campo Programma / script .

Quindi, immettere il percorso del documento Microsoft Excel nel campo Aggiungi argomenti .

Completa la procedura guidata e la tua pianificazione sarà a posto.

Vale la pena eseguire un test pianificando l'azione Come svuotare automaticamente il cestino in un programma e liberare spazio sprecato Come svuotare automaticamente il cestino in un programma e liberare spazio sprecato Se non si svuota regolarmente il Cestino Bin, potrebbe sprecare gigabyte di spazio sull'unità dati. Ma ora Windows 10 può svuotarlo automaticamente in base a una pianificazione. Leggi di più per un paio di minuti in futuro, quindi modifica l'attività una volta che puoi confermare che funziona.

Nota : potrebbe essere necessario regolare le impostazioni del Centro protezione per assicurarsi che la macro venga eseguita correttamente.

Per fare ciò, apri il foglio di calcolo e vai a File > Opzioni > Centro protezione .

Da qui, fai clic su Impostazioni Centro protezione e nella schermata successiva imposta il quadrante radio su Non mostrare mai informazioni sul contenuto bloccato .

Fai funzionare Microsoft Excel per te

Microsoft Excel è uno strumento incredibilmente potente, ma imparare a trarne il massimo può essere un po 'intimidatorio. Se vuoi veramente padroneggiare il software, devi essere a tuo agio con VBA, e non è un compito da poco.

Tuttavia, i risultati parlano da soli. Con un po 'di esperienza VBA, sarai presto in grado di far eseguire automaticamente le attività di base a Microsoft Excel, dandoti più tempo per concentrarti su questioni più urgenti.

Ci vuole tempo per sviluppare competenze con VBA, ma vedrai presto i frutti delle tue fatiche se riesci a rimanere fedele.

Un ottimo punto di partenza è il nostro autorevole tutorial sull'uso di VBA in Excel Un tutorial per principianti sulla scrittura di macro VBA in Excel (e perché dovresti imparare) Un tutorial per principianti sulla scrittura di macro VBA in Excel (e perché dovresti imparare) Se usi Excel regolarmente, vale la pena imparare come creare macro VBA e ottenere l'accesso a molte altre funzioni e capacità. Leggi di più . Una volta finito, questo semplice script per inviare e-mail da Excel sembrerà un gioco da ragazzi.

Ulteriori informazioni su: Suggerimenti per e-mail, Microsoft Excel, Suggerimenti per Microsoft Office, Programmazione, Programmazione Visual Basic.