Acasă
» MS OFFICE
»
Cum să trimiți e-mailuri cu VBA în Excel: 11 pași pentru Outlook
Cum să trimiți e-mailuri cu VBA în Excel: 11 pași pentru Outlook
Excel VBA poate pregăti un e-mail Outlook cu un destinatar, un subiect, un mesaj și un atașament la un registru de lucru. Acest ghid în 11 pași utilizează Outlook clasic pentru Windows și deschide mesajul ca schiță, astfel încât să îl puteți verifica înainte de a-l trimite. Microsoft listează macrocomenzile VBA și modelul de obiecte Outlook ca neacceptate în noul Outlook, prin urmare, acest exemplu bazat pe COM nu va funcționa cu noul Outlook sau cu Outlook într-un browser.
Înainte de a începe, salvați-vă lucrarea și confirmați că Outlook clasic este instalat cu un cont de e-mail configurat. Codul folosește legătura târzie, deci nu este nevoie să adăugați o referință la biblioteca Outlook specifică versiunii.
Trimiteți un e-mail cu Excel VBA în 11 pași
1. Confirmați că Outlook clasic este disponibil
Deschideți versiunea desktop de Outlook și asigurați-vă că respectiva cutie poștală poate trimite un mesaj. Această macrocomandă necesită versiunea clasică de Outlook pentru Windows; o filă Outlook.com, Outlook pe web și noul Outlook nu expun obiectul de automatizare COM utilizat aici. Consultați comparația caracteristicilor clasice și noi ale Microsoft Outlook .
Pasul 1: Folosește versiunile desktop de Excel și Outlook clasic pentru Windows.
2. Salvați registrul de lucru ca fișier cu macrocomenzi activate
În Excel, alegeți Fișier > Salvare ca , apoi selectați Registru de lucru Excel cu macrocomenzi activate (*.xlsm) . Un fișier .xlsx obișnuit nu poate reține cod VBA. Salvați registrul de lucru într-o locație la care puteți accesa și pe care vă puteți aminti calea acestuia.
Pasul 2: Alegeți formatul .xlsm activat pentru macrocomenzi la salvare.
3. Deschideți editorul Visual Basic
Cu registrul de lucru deschis în aplicația desktop Excel, apăsați Alt+F11 . În Project Explorer, găsiți proiectul al cărui nume corespunde cu registrul de lucru. Dacă editorul este ascuns, apăsați Ctrl+R pentru a afișa Project Explorer.
Pasul 3: Proiectul registrului de lucru apare în Editorul Visual Basic.
4. Introduceți un modul standard
În Editorul Visual Basic, selectați proiectul registrului de lucru, alegeți Inserare > Modul și utilizați panoul Cod nou. Un modul standard este un loc potrivit pentru o macrocomandă pe care o executați la cerere.
Pasul 4: Introduceți un modul standard pentru macrocomandă.
5. Adăugați macrocomanda de creare a schiței
Lipiți această procedură în modul. Aceasta verifică dacă registrul de lucru a fost salvat, verifică calea atașării, creează un mesaj Outlook și îl afișează fără a-l trimite.
Pasul 5: Adăugați procedura în noul modul.
Option Explicit
Sub CreateOutlookDraft()
Dim olApp As Object
Dim olMail As Object
Dim attachmentPath As String
If Len(ThisWorkbook.Path) = 0 Then
MsgBox "Save the workbook before creating the email.", vbExclamation
Exit Sub
End If
attachmentPath = ThisWorkbook.FullName
If Len(Dir$(attachmentPath)) = 0 Then
MsgBox "Workbook attachment not found: " & attachmentPath, vbExclamation
Exit Sub
End If
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
If olApp Is Nothing Then
Set olApp = CreateObject("Outlook.Application")
End If
On Error GoTo 0
If olApp Is Nothing Then
MsgBox "Classic Outlook could not be opened.", vbExclamation
Exit Sub
End If
Set olMail = olApp.CreateItem(0)
With olMail
.To = "recipient@example.com"
.CC = ""
.Subject = "Monthly report"
.Body = "Hi," & vbCrLf & vbCrLf & _
"Please review the attached monthly report." & _
vbCrLf & vbCrLf & "Thanks,"
.Attachments.Add attachmentPath
.Display
End With
Set olMail = Nothing
Set olApp = Nothing
End Sub
Schimbați recipient@example.comla destinatarul dorit. Adăugați adrese la .CCdacă este necesar, apoi editați .Subjectși textul din .Body. Păstrați ghilimelele în jurul valorilor textului și utilizați &pentru a uni liniile cu vbCrLf. Exemplul folosește un mesaj text simplu; nu necesită formatare HTML.
Pasul 6: Înlocuiți exemplul de destinatar; editați subiectul și liniile mesajului în aceeași procedură.
7. Alegeți atașamentul
Așa cum este scris, ThisWorkbook.FullNameatașează registrul de lucru salvat cu macrocomenzi activate. Dacă doriți să atașați un raport separat, înlocuiți acea atribuire cu calea completă a fișierului, de exemplu "C:\Reports\MonthlyReport.xlsx". Confirmați că fișierul este prezent și accesibil înainte de a rula macrocomanda. Metoda Attachments.Addatașează un fișier la mesaj.
Pasul 7: Confirmați că calea atașării indică un fișier existent.
8. Salvați macrocomanda
Apăsați Ctrl+S în editor sau reveniți la Excel și salvați registrul de lucru. Păstrați formatul .xlsm; salvarea ca .xlsx elimină proiectul VBA. Stocați fișierul într-un loc de încredere și nu activați macrocomenzile într-un registru de lucru dintr-o sursă necunoscută.
Pasul 8: Salvați registrul de lucru păstrând extensia .xlsm.
9. Executați procedura
Faceți clic în interior CreateOutlookDraftși apăsați F5 sau utilizați comanda Executare a editorului. Dacă Excel blochează macrocomanda, urmați politica organizației dvs. Microsoft notează că Office blochează macrocomanda în fișierele marcate ca provenind de pe internet în mod implicit; citiți îndrumările sale privind securitatea macrocomenzilor, în loc să dezactivați protecțiile la nivel global.
Pasul 9: Executați macrocomanda din editorul Visual Basic.
10. Verifică schița și trimite-o singur
Outlook ar trebui să deschidă un mesaj cu adresa, subiectul, corpul mesajului și atașamentul registrului de lucru completate. Verificați fiecare destinatar și deschideți atașamentul, dacă este cazul. Faceți clic pe butonul Trimitere din Outlook numai după verificarea schiței. Codul folosește intenționat .Display, nu .Send, pentru a împiedica trimiterea automată prin e-mail a unei greșeli de scriere sau a unui fișier învechit.
Pasul 10: Examinați schița Outlook și registrul de lucru atașat.Trimiteți numai după confirmarea detaliilor mesajului.
11. Remediați problemele comune
„Componenta ActiveX nu poate crea obiect” sau Outlook nu este disponibil: confirmați că Outlook clasic pentru Windows este instalat și configurat. Noul Outlook și Outlook din browser nu oferă modelul de obiect Outlook necesar.
Macrocomanda nu va rula: confirmați că registrul de lucru este .xlsm și verificați notificarea de securitate din Excel. Nu activați toate macrocomenzile pentru a ocoli un avertisment; aveți încredere doar în fișierele și editorii pe care îi recunoașteți.
Atașamentul lipsește: salvați mai întâi registrul de lucru sau corectați calea completă pentru raportul separat. Verificați dacă fișierul nu se află pe o unitate indisponibilă.
Acest flux de lucru este pentru un mesaj pe care îl revizuiți și îl trimiteți în Outlook clasic. Pentru e-mailurile de afaceri repetate sau nesupravegheate, utilizați un serviciu de automatizare aprobat de organizație și validați separat destinatarii, atașamentele și permisiunile.
Dacă Office blochează o macrocomandă, urmați instrucțiunile de securitate Microsoft și politica organizației dvs.