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

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

Per inviare e-mail da Microsoft Excel sono necessari solo alcuni semplici script. Aggiungi questa funzionalità ai tuoi fogli di calcolo e puoi davvero migliorare quanto puoi realizzare in Excel.





Abbiamo coperto molte ottime macro di Excel, che possono realizzare 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 creare un rapporto su un 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 del personale che aggiorna documenti o fogli di calcolo su base settimanale e desideri ricevere una notifica via e-mail di quando tali aggiornamenti sono stati effettuati. Oppure potresti avere un foglio di calcolo di contatti e vuoi inviare un'e-mail a tutti in una volta.



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

La tecnica in questo articolo utilizzerà una funzionalità disponibile in Excel VBA da molto tempo, Oggetti dati di collaborazione (CDO).





CDO è un componente di messaggistica utilizzato in Windows fin dalle prime generazioni del sistema operativo. 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 di VBA in Microsoft Word o Excel ed è pronto per l'uso.

L'utilizzo 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'e-mail che consegnerà i risultati da una cella Excel specifica.





Passaggio 1: creare una macro VBA

Il primo passo è andare alla scheda Sviluppatore di Excel.

All'interno della scheda Sviluppatore, fai clic su Inserire nella casella Controlli e quindi selezionare un pulsante di comando.

Disegnalo nel foglio e quindi crea una nuova macro facendo clic su macro nella barra multifunzione dello sviluppatore.

Quando fai clic su Creare pulsante, si aprirà l'editor VBA.

Aggiungi il riferimento alla libreria CDO navigando su Utensili > Riferimenti nell'editore.

Scorri l'elenco fino a trovare Libreria Microsoft CDO per Windows 2000 . Seleziona la casella di controllo e fai clic su ok .

Quando fai clic ok , prendi nota del nome della funzione in cui stai incollando lo script. Ti servirà più tardi.

Passaggio 2: imposta i campi CDO 'Da' e 'A'

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 facoltativi, il A partire dal e Per i campi sono obbligatori.

i migliori giochi di cucina del mondo
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 = 'rdube02@gmail.com'
strTo = 'rdube02@gmail.com'
strCc = ''
strBcc = ''
strBody = 'The total results for this quarter are: ' & Str(Sheet1.Cells(2, 1))

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

Metti insieme i componenti del messaggio usando il & stringa per inserire i dati da uno qualsiasi dei fogli di Microsoft Excel direttamente nel messaggio di posta elettronica, proprio come mostrato sopra.

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

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

Questo esempio è una configurazione non SSL tramite Gmail. CDO supporta SSL, ma questo non rientra nell'ambito di questo articolo. Se hai bisogno di usare SSL, questo codice avanzato in Github può aiutare.

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') = 'email@website.com'
.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 della mail, non devi far altro che compilare gli appositi campi per il Oggetto CDO_Mail , ed emettere il Spedire comando.

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 finestre pop-up o messaggi di avviso di sicurezza, che possono verificarsi quando si ricorre all'utilizzo dell'oggetto di posta di Outlook.

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

Per collegare 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.

negozio di ricambi per pc usati vicino a me

Ecco come appariva il messaggio che ho ricevuto nella mia casella di posta:

Nota : Se ricevi un errore che dice Il trasporto non è riuscito a connettersi al server , assicurati di aver inserito il nome utente, la password, il server SMTP e il numero di porta corretti nelle righe di codice elencate di seguito Con SMTP_Config .

Portalo oltre e automatizza l'intero processo

È bello poter 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 .

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

Quindi, seleziona Questa cartella di lavoro dal Progetto gerarchia.

Dai due campi a discesa nella parte superiore della finestra del codice, seleziona cartella di lavoro e seleziona Aprire dal menu a discesa Metodi.

Incolla lo script email sopra in Cartella di lavoro secondaria privata_Apri() .

Questo eseguirà la macro ogni volta che apri il file Excel.

Avanti, apri Agenda .

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.

Selezionare Crea attività di base... dal Azione menu e procedi attraverso la procedura guidata fino a raggiungere il Azione schermo.

Selezionare Avvia un programma e clicca Prossimo .

Utilizzare il Navigare per trovare la posizione di Microsoft Excel sul tuo computer, oppure copia e incolla il percorso nel Programma/sceneggiatura campo.

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

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

Vale la pena eseguire un test pianificando l'azione per un paio di minuti in futuro, quindi modificando l'attività una volta che puoi confermare che funziona.

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

Per farlo, apri il foglio di calcolo e vai a File > Opzioni > Centro di fiducia .

Da qui, clicca Impostazioni del centro di fiducia , e nella schermata successiva imposta il quadrante della radio su Non mostrare mai informazioni sui contenuti bloccati .

Fai funzionare Microsoft Excel per te

Microsoft Excel è uno strumento incredibilmente potente, ma imparare a sfruttarlo al meglio può essere un po' intimidatorio. Se vuoi veramente padroneggiare il software, dovrai esserlo a mio agio con VBA , e non è un compito da poco.

risolvere un problema con il driver video amd/ati

Tuttavia, i risultati parlano da soli. Con un po' di esperienza VBA alle spalle, sarai presto in grado di fare in modo che Microsoft Excel esegua automaticamente le attività di base, dandoti più tempo per concentrarti su questioni più urgenti.

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

Un ottimo punto di partenza è il nostro autorevole tutorial sull'uso di VBA in Excel . Una volta terminato, questo semplice script per inviare e-mail da Excel sembrerà un gioco da ragazzi.

Condividere Condividere Tweet E-mail Canon vs Nikon: quale marca di fotocamere è migliore?

Canon e Nikon sono i due più grandi nomi nel settore delle fotocamere. Ma quale marca offre la migliore gamma di fotocamere e obiettivi?

Leggi Avanti
Argomenti correlati
  • Produttività
  • Programmazione
  • Suggerimenti per la posta elettronica
  • Programmazione
  • Programmazione Visual Basic
  • Microsoft Excel
  • Suggerimenti per Microsoft Office
Circa l'autore Ryan Dube(942 articoli pubblicati)

Ryan ha una laurea in ingegneria elettrica. Ha lavorato 13 anni nell'ingegneria dell'automazione, 5 anni nell'IT e ora è un ingegnere delle app. Ex caporedattore di MakeUseOf, ha parlato a conferenze nazionali sulla visualizzazione dei dati ed è apparso su TV e radio nazionali.

Altro da Ryan Dube

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti