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 .

Registru de lucru Excel cu o fereastră clasică Outlook pe desktop deschisă în spatele său.
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.

Caseta de dialog Salvare ca în Excel cu tipul de registru de lucru .xlsm activat pentru macrocomenzi selectat.
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.

Editorul Visual Basic care prezintă proiectul registrului de lucru Excel și un panou de cod gol.
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.

Meniul Inserare din Editorul Visual Basic cu comanda Modul evidențiată.
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.

Modul VBA care conține începutul unei proceduri CreateOutlookDraft.
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

Argumentul numeric 0creează un element de e-mail standard. Documentele Microsoft Application.CreateItem , Attachments.Add și MailItem.Display .

6. Înlocuiți detaliile eșantionului de e-mail

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.

Editor VBA cu exemple de câmpuri pentru destinatar și subiect evidențiate în macrocomanda de e-mail.
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.

Cod VBA care verifică calea atașării unui raport înainte de a crea un mesaj Outlook.
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ă.

Ferestrele editorului Excel și VBA care afișează registrul de lucru .xlsm salvat și controlul Salvare.
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.

Meniul Executare din Editorul Visual Basic afișează comanda F5 pentru macrocomanda selectată.
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.

Schiță clasică Outlook cu un destinatar, un subiect și un atașament la registrul de lucru, gata pentru revizuire.
Pasul 10: Examinați schița Outlook și registrul de lucru atașat.
Fereastra de compunere Outlook cu butonul Trimitere vizibil și schița încă deschisă.
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.

Avertisment de securitate Excel care explică faptul că macrocomenzile au fost dezactivate pentru un fișier.
Dacă Office blochează o macrocomandă, urmați instrucțiunile de securitate Microsoft și politica organizației dvs.

Lasă un comentariu

Cum să muți o imagine în Microsoft Word

Cum să muți o imagine în Microsoft Word

Aflați cum să trageți o imagine în Word, să alegeți încadrarea textului, să o păstrați într-un paragraf sau să o remediați pe pagină și să depanați imaginile care nu se mișcă.

Cum se introduce o casetă de selectare în Excel: Două metode simple

Cum se introduce o casetă de selectare în Excel: Două metode simple

Aflați cum să inserați o casetă de selectare în Excel cu instrumentul în celulă, să numărați elementele bifate cu formule sau să adăugați un control formular legat în versiunile desktop mai vechi.

Cum se completează automat literele în Excel: de la A la Z și nu numai

Cum se completează automat literele în Excel: de la A la Z și nu numai

Generați litere mici de la A la Z sau etichete după Z în Excel cu o formulă de umplere cu ghidaj, o secvență sau o listă personalizată reutilizabilă.

Cum se taie cu o linie în Excel: Comenzi rapide și metode pas cu pas

Cum se taie cu o linie în Excel: Comenzi rapide și metode pas cu pas

Aflați cum să tăiați cu o linie în Excel pe Windows, Mac și web, să formatați o parte a unei celule și să eliminați linia fără a șterge valoarea acesteia.

Importul și exportul Office Outlook 2010: Mutarea datelor cu un fișier PST

Importul și exportul Office Outlook 2010: Mutarea datelor cu un fișier PST

Aflați cum să importați un fișier PST în Outlook 2010 sau să exportați e-mailuri, contacte, calendar și activități. Urmați meniurile corecte și evitați folderele lipsă sau duplicatele.

Modificarea înălțimii și lățimii grilei în Word 2010

Modificarea înălțimii și lățimii grilei în Word 2010

Aflați cum să ajustați înălțimea și lățimea grilei în Word 2010, să modificați frecvența liniilor vizibile și să setați spațierea orizontală și verticală subiacentă a grilei de desen.

Recuperarea unei parole Outlook PST cu Nucleus Kernel

Recuperarea unei parole Outlook PST cu Nucleus Kernel

Recuperează o parolă Outlook PST uitată cu pașii actuali ai Kernel, inclusiv cum să identifici fișierul corect, să faci o copie de rezervă și să verifici limitele instrumentului.

Cum se inserează o pagină web live într-un diapozitiv PowerPoint

Cum se inserează o pagină web live într-un diapozitiv PowerPoint

Utilizați programul de completare LiveWeb pentru a plasa un site web pe un diapozitiv PowerPoint, a seta dimensiunea și comportamentul de reîmprospătare și a verifica compatibilitatea înainte de prezentare.

Adăugați sărbători naționale în calendarul Outlook

Adăugați sărbători naționale în calendarul Outlook

Adăugați sărbători specifice fiecărei țări în noul Outlook, Outlook pe web sau Outlook clasic. Aflați cum să evitați evenimentele duplicate și să verificați dacă lipsesc datele din perioada 2026-2027.

Access 2010: Exportul unui tabel de bază de date în Excel 2010

Access 2010: Exportul unui tabel de bază de date în Excel 2010

Exportați un tabel Access 2010 în Excel 2010, alegeți dacă doriți să includeți formatarea, salvați pașii de export reutilizabili și verificați problemele comune legate de transferul de date.