Com enviar correus electrònics des d'un full de càlcul d'Excel mitjançant scripts VBA

Com enviar correus electrònics des d'un full de càlcul d'Excel mitjançant scripts VBA

Per enviar correus electrònics des de Microsoft Excel només calen uns quants scripts senzills. Afegiu aquesta funcionalitat als vostres fulls de càlcul i realment podeu millorar el que podeu aconseguir a Excel.





Hem cobert moltes macros excel·lents d'Excel, que poden aconseguir el mateix que poden fer els scripts VBA, però sense la necessitat de coneixements de programació. Però hi ha moltes coses avançades que només podeu fer amb VBA, com ara crear un informe de full de càlcul amb tota la informació del vostre PC.





Prefereixes veure aquest tutorial com un vídeo? T’hem cobert!





Per què enviar correu electrònic des d'Excel?

Hi ha molts motius pels quals és possible que vulgueu enviar un correu electrònic des de Microsoft Excel.

Potser teniu personal que actualitza documents o fulls de càlcul setmanalment i voleu rebre una notificació per correu electrònic de quan es facin aquestes actualitzacions. O és possible que tingueu un full de càlcul de contactes i vulgueu enviar un correu electrònic a tots alhora.



Probablement estigueu pensant que la creació de guions per a una transmissió de correu electrònic des d'Excel serà complicada. No és en absolut el cas.

La tècnica d’aquest article farà servir una característica que fa temps que està disponible a Excel VBA, Objectes de dades de col·laboració (CDO).





CDO és un component de missatgeria utilitzat a Windows des de les primeres generacions del sistema operatiu. Abans es deia CDONTS i, després, amb l'arribada de Windows 2000 i XP, es va substituir per 'CDO per a Windows 2000'. Aquest component ja està inclòs a la vostra instal·lació de VBA a Microsoft Word o Excel i està llest per al seu ús.

L’ús del component facilita l’enviament de correus electrònics des de productes Windows amb VBA. En aquest exemple, utilitzeu el component CDO a Excel per enviar un correu electrònic que lliurarà els resultats d'una cel·la específica d'Excel.





Pas 1: creeu una macro VBA

El primer pas és anar a la pestanya Desenvolupador d'Excel.

A la pestanya Desenvolupador, feu clic a Insereix al quadre Controls i, a continuació, seleccioneu un botó d’ordres.

Dibuixeu-lo al full i, a continuació, creeu una macro nova fent-hi clic macros a la cinta de programari.

Quan feu clic al botó Crear , obrirà l'editor VBA.

Afegiu la referència a la biblioteca CDO navegant a Eines > Referències a l’editor.

Desplaceu-vos cap avall per la llista fins que trobeu Biblioteca de Microsoft CDO per al Windows 2000 . Marqueu la casella de selecció i feu clic a D'acord .

Quan feu clic D'acord , anoteu el nom de la funció on enganxeu l'script. La necessitareu més endavant.

Pas 2: configureu els camps 'Des de' i 'A' del CDO

Per fer-ho, primer heu de crear els objectes de correu i configurar tots els camps necessaris per enviar el correu electrònic.

Tingueu en compte que, tot i que molts dels camps són opcionals, el fitxer Des de i Per a els camps són obligatoris.

Netflix es carrega, però no es juga
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))

El més interessant d’això és que podeu crear qualsevol cadena que vulgueu per personalitzar un missatge de correu electrònic complet i assignar-lo al fitxer strBody variable.

Reuneix components del missatge mitjançant el fitxer & per inserir dades de qualsevol dels fulls de Microsoft Excel directament al missatge de correu electrònic, tal com es mostra a la part superior.

Pas 3: configureu CDO per utilitzar un SMTP extern

La següent secció de codi és on configurareu CDO per utilitzar qualsevol servidor SMTP extern per enviar el correu electrònic.

Aquest exemple és una configuració que no és SSL mitjançant Gmail. CDO és capaç d'utilitzar SSL, però això està fora de l'abast d'aquest article. Si necessiteu utilitzar SSL, això codi avançat a Github Puc ajudar.

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

Pas 4: finalitzeu la configuració del CDO

Ara que heu configurat la connexió al servidor SMTP per enviar el correu electrònic, només cal que empleneu els camps adequats per a la Objecte CDO_Mail , i emetre el fitxer Envia comandament.

A continuació s’explica com es fa això:

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

No hi haurà cap quadre emergent ni missatges d'alerta de seguretat, que puguin passar quan es recorre a utilitzar l'objecte de correu d'Outlook.

CDO simplement ajunta el correu electrònic i utilitza les dades de connexió del servidor SMTP per activar el missatge. És la forma més senzilla d’incorporar el correu electrònic als scripts VBA de Microsoft Word o Excel.

Per connectar el botó d’ordres a aquest script, aneu a l’editor de codi i feu clic a Full 1 per veure el codi VBA d'aquest full de treball.

Escriviu el nom de la funció on heu enganxat l'script anterior.

El controlador Xbox One no funciona a la PC

A continuació s’explica el missatge que he rebut a la safata d’entrada:

Nota : Si rebeu un error que es llegeix El transport no s'ha pogut connectar al servidor , assegureu-vos que heu introduït el nom d’usuari, la contrasenya, el servidor SMTP i el número de port correctes a les línies de codi que apareixen a sota Amb SMTP_Config .

Aneu més enllà i automatitzeu tot el procés

Està molt bé poder enviar correus electrònics des d'Excel amb només tocar un botó. Tanmateix, és possible que vulgueu utilitzar aquesta funcionalitat regularment, en aquest cas tindria sentit automatitzar el procés.

Per fer-ho, haureu de fer un canvi a la macro. Dirigiu-vos a Visual Basic Editor i copieu i enganxeu la totalitat del codi que hem ajuntat.

A continuació, seleccioneu Aquest llibre de treball des del Projecte jerarquia.

Seleccioneu els dos camps desplegables de la part superior de la finestra del codi Quadern de treball i seleccioneu Obert des del menú desplegable Mètodes.

Enganxeu l'script de correu electrònic anterior a Quadern de treball privat sub_obert () .

Això executarà la macro sempre que obriu el fitxer Excel.

A continuació, obriu Planificador de tasques .

Utilitzarà aquesta eina per demanar a Windows que obri automàticament el full de càlcul a intervals regulars, moment en què s’iniciarà la vostra macro, enviant el correu electrònic.

Seleccioneu Crea una tasca bàsica ... des del Acció menú i obriu-vos camí a través de l'assistent fins que arribeu a Acció pantalla.

Seleccioneu Inicieu un programa i feu clic a Pròxim .

Utilitzar el Navega per trobar la ubicació de Microsoft Excel a l'ordinador o copiar i enganxar el camí a la carpeta Programa / guió camp.

A continuació, introduïu el camí al vostre document de Microsoft Excel al fitxer Afegiu arguments camp.

Completeu l'assistent i la vostra programació estarà al seu lloc.

Val la pena fer una prova programant l'acció durant un parell de minuts en el futur i després modificant la tasca un cop pugueu confirmar que funciona.

Nota : És possible que hàgiu d'ajustar la configuració del Centre de confiança per assegurar-vos que la macro s'executa correctament.

Per fer-ho, obriu el full de càlcul i aneu a Dossier > Opcions > Centre de confiança .

A partir d’aquí, feu clic a Configuració del centre de confiança i, a la pantalla següent, configureu el dial de ràdio a Mai mostreu informació sobre contingut bloquejat .

Feu que Microsoft Excel funcioni per a vosaltres

Microsoft Excel és una eina increïblement potent, però aprendre a treure’n el màxim partit pot resultar una mica intimidatori. Si voleu dominar realment el programari, ho necessitareu còmode amb VBA , i això no és poca tasca.

PC no va a dormir Windows 10

No obstant això, els resultats parlen per si sols. Amb una mica d’experiència de VBA al vostre abast, aviat podreu fer que Microsoft Excel realitzi tasques bàsiques automàticament i us donarà més temps per concentrar-vos en qüestions més urgents.

Es necessita temps per construir experiència amb VBA, però aviat veureu els fruits de les vostres feines si us hi podeu quedar.

Un bon lloc per començar és la nostra autoritat tutorial sobre l'ús de VBA a Excel . Un cop hàgiu acabat això, aquest senzill script per enviar correus electrònics des d'Excel semblarà un joc infantil.

Compartir Compartir Tweet Correu electrònic Canon vs. Nikon: quina marca de càmera és millor?

Canon i Nikon són els dos noms més importants de la indústria de les càmeres. Però, quina marca ofereix la millor gamma de càmeres i objectius?

Llegiu a continuació
Temes relacionats
  • Productivitat
  • Programació
  • Consells per correu electrònic
  • Programació
  • Programació Visual Basic
  • Microsoft Excel
  • Consells de Microsoft Office
Sobre l'autor Ryan Dube(942 articles publicats)

Ryan és llicenciat en Enginyeria Elèctrica. Ha treballat 13 anys en enginyeria d'automatització, 5 anys en informàtica i ara és enginyer d'aplicacions. Antic editor gerent de MakeUseOf, ha parlat a conferències nacionals sobre visualització de dades i ha estat presentat a la ràdio i la televisió nacionals.

Més de Ryan Dube

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us