İçindekiler
Bu makalede size şunları göstereceğiz 5 Makro için e-posta gönder gelen Excel Yöntemlerimizi göstermek için, aşağıdaki özelliklere sahip bir veri kümesi seçtik 3 sütun : " İsim ", " E-posta ", ve " Şehir ".
Alıştırma Çalışma Kitabını İndirin
E-posta.xlsm göndermek için Makro KullanmaExcel'den E-posta Göndermek için Makro Kullanmanın 5 Yolu
1. E-posta Göndermek için Outlook Nesne Kitaplığının Kullanımı
İlk olarak Makro etkinleştireceğiz" Microsoft Outlook 16.0 Nesne Kitaplığı " için gönder bir e-posta itibaren Excel . Dahası, bizim giriş yapmamız gerekiyor Görünüm içinde hesap Excel .
Adımlar:
Başlangıçta, şu soruları gündeme getireceğiz Visual Basic Pencere.
- İlk olarak Geliştirici sekmesi>>> seçin Visual Basic .
Alternatif olarak ALT + F11 görüntülemek için VBA Pencere.
- İkinci olarak Araçlar >>> seçiniz " Referanslar... ".
Yeni bir iletişim kutusu görünecek.
- Üçüncü olarak, " Microsoft Outlook 16.0 Nesne Kitaplığı " düğmesine basın ve TAMAM. .
Böylece, şunları etkinleştireceğiz Outlook Nesne Kitaplığı .
- Onlardan Ekleme >>> seçin Modül .
Kodumuzu buraya yazacağız.
- Bundan sonra, aşağıdaki kodu yazın.
Sub Macro_Send_Email() Dim eApp As Outlook.Application Dim eSource As String Set eApp = New Outlook.Application Dim eItem As Outlook.MailItem Set eItem = eApp.CreateItem(olMailItem) eItem.To = Range("C5").Value 'Bu öğeler isteğe bağlıdır 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Sending Email using VBA from Excel" eItem.Body = "Hello," & vbNewLine &"Umarım bu e-posta sizi iyi bulur." & _ vbNewLine & vbNewLine & _ "Sincerely," & vbNewLine & "Exceldemy" 'Bu çalışma kitabını eklemek istiyorsanız, bu iki satırı aşağıdan kaldırın 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'kullanabilir .Send End Sub
VBA Kod Dökümü
- İlk olarak, bizim Alt Prosedür Macro_Send_Email .
- İkinci olarak, biz ilan ediyoruz değişken türleri.
- Üçüncü olarak, biz seçiyoruz Görünüm bizim gibi Posta Başvurusu .
- Sonra, bizim seçiyoruz e-posta adresinden gönderiliyor hücre C5 .
- Bundan sonra e-posta içeriği kodumuzda ayarlanmıştır.
- Son olarak, " VBA Görüntüleme Özelliği " burada bizim e-posta . Bu nedenle, şu tuşa basmamız gerekecek Gönder manuel olarak gönder ve e-postalar Ayrıca, " Mülk Gönder " için e-posta gönder görüntülemeden.
- Ondan sonra, Kaydet ve kapatın Modül .
Şimdi, biz Koşmak kodu.
- İlk olarak Geliştirici sekmesi>>> seçin Makrolar .
Bu Makro iletişim kutusu görünecek.
- İkinci olarak, bizim Alt Prosedür " Macro_Send_Email ".
- Son olarak, tuşuna basın Koşmak .
Kodu çalıştırdıktan sonra e-posta penceresine tıklayabiliriz. Gönder Böylece, size ilk yöntemi göstermiş olduk. gönderme bir e-posta itibaren excel kullanarak VBA .
Daha fazlasını okuyun: Outlook olmadan Excel VBA'dan E-posta Gönderme (4 Uygun Örnek)
2. Excel'de Gmail Hesabından E-posta Göndermek için Makro
Bu yöntem için şunlara ihtiyacımız var daha az güvenli uygulama erişimi bir şey yok. Gmail hesabını etkinleştirmemiz gerekecek. Microsoft CDO bir şey yok. Referanslar Menü.
Adımlar:
- İlk olarak, ilk yöntemde gösterildiği gibi , getir Referanslar iletişim kutusu .
- İkinci olarak, " Windows 2000 Kitaplığı için Microsoft CDO " ve tuşuna basın TAMAM. .
- Üçüncü olarak, şu adrese gidin Güvenlik senin Google Hesap ayarları .
- Son olarak, açın Daha az güvenli uygulama erişimi .
Şimdi, gireceğiz Makro Kod.
- İlk olarak, yöntem 1'de gösterildiği gibi , getir Modül penceresine gidin ve bu kodu yazın.
Option Explicit Sub Send_Gmail_Macro() Dim cMail As Object Dim cConfig As Object Dim sConfig As Variant Dim cSubject As String Dim cFrom As String Dim cTo As String Dim cCC As String Dim cBcc As String Dim cBody As String cSubject = "Gmail Gönderme Makrosu" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Merhaba. Bu otomatik bir mesajdır. Lütfen cevap vermeyin" Set cMail =CreateObject("CDO.Message") On Error GoTo Error_Handling Set cConfig = CreateObject("CDO.Configuration") cConfig.Load -1 Set sConfig = cConfig.Fields With sConfig .Item("//schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("//schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("//schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1.Item("//schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" .Item("//schemas.microsoft.com/cdo/configuration/sendpassword") = "SenderGmailPassword" .Item("//schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("//schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With cMail Set .Configuration = cConfig End With cMail.Subject =cSubject cMail.From = cFrom cMail.To = cTo cMail.TextBody = cBody cMail.CC = cCC cMail.BCC = cBcc cMail.Send Error_Handling: If Err.Description "" Then MsgBox Err.Description End Sub
VBA Kod Dökümü
- İlk olarak, bizim Alt Prosedür Send_Gmail_Macro .
- İkinci olarak, biz ilan ediyoruz değişken türleri.
- Üçüncüsü, biz ayarlıyoruz e-posta kodumuzdaki içerik.
- O zaman, biz de giriş kimlik bilgileri . Kendiniz yazmanız gerekiyor KIMLIK ve Şifre Burada.
- Bundan sonra, biz yola çıktık Liman için 465 .
- Sonunda, biz gönderme bizim e-posta .
- Sonra, Kaydet ve Koşmak Bu kod.
Başarılı bir şekilde gönderildi bir e-posta adresimize.
Daha Fazla Oku: Excel'den Gövde ile E-posta Gönderme Makrosu (3 Yararlı Durum)
3. Bir Sütundan Alıcı Listesine E-posta Gönderme
Üçüncü yöntem için şunları yapacağız e-posta gönder için 7 kullanan insanlar Makro itibaren Excel . Sonuncusunu bulacağız sıra bu nedenle kodumuz daha uzun bir liste için çalışacaktır. e-posta gönder bir şey yok. hücre C5:C10 menzil.
Adımlar:
- İlk olarak, yöntem 1'de gösterildiği gibi , getir Modül penceresine gidin ve bu kodu yazın.
Sub Macro_Send_Email_From_A_List() Dim pApp As Object Dim pMail As Object Dim z As Integer Dim eList As String Dim eRow As Long Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) eRow = Range("C:C").SpecialCells(xlCellTypeLastCell).Row - 1 With pMail eList = "" For z = 5 To eRow If eList = "" Then eList = Cells(z, 3).Value Else eList = eList & ";" & Cells(z,3).Value End If Next z .BCC = eList .Subject = "Hello There" .Body = "This Message is brought to you by Exceldemy." .Display 'You can use .Send here End With Set pMail = Nothing Set pApp = Nothing End Sub
VBA Kod Dökümü
- İlk olarak, bizim Alt Prosedür Macro_Send_Email_From_A_List .
- İkinci olarak, biz ilan ediyoruz değişken türleri.
- Üçüncü olarak, biz seçiyoruz Görünüm bizim gibi Posta Başvurusu .
- Sonra, buluyoruz son sıra ki bu 10 veri setimiz için.
- Bundan sonra, bizim e-posta şuradan başlar 5. sıra girdik 5 için başlangıç değeri olarak " değişken z "Dahası, bizim e-postalar üzerinde C sütunu , dolayısıyla girdik 3 içinde Hücreler mülk.
- Sonra, ayarlıyoruz e-posta kodumuzdaki içerik.
- Son olarak, " .Display " burada bizim e-posta . Bu nedenle, şu tuşa basmamız gerekecek Gönder manuel olarak gönder ve e-postalar Ayrıca, " Gönder " için e-posta gönder görüntülemeden.
- Sonra, Kaydet ve Koşmak ve Modül .
Gördüğümüz kadarıyla tüm e-postalar içinde görüntülenir BCC Sonuç olarak, basitçe Gönder Görevimizi tamamlamak için.
Daha fazlasını okuyun: Excel Listesinden E-posta Gönderme (2 Etkili Yol)
Benzer Okumalar
- Excel'de Koşul Karşılandığında Otomatik Olarak E-posta Gönderme
- Excel Dosyası Çevrimiçi Nasıl Paylaşılır (2 Kolay Yöntem)
- VBA Kullanarak Excel Çalışma Sayfasından Otomatik Olarak Hatırlatma E-postası Gönderme
- Excel'de Koşullar Sağlandığında E-posta Gönderme (3 Kolay Yöntem)
- Excel'de Çalışma Kitabını Paylaşma Nasıl Etkinleştirilir
4. E-posta Kullanarak Tek Sayfa Gönderme Makrosu
Bu bölümde, şunları yapacağız gönder ve Aktif Çalışma Sayfası Burada, hedef kişimizin konumunu seçmemiz gerekecek. Excel Dosya.
Adımlar:
- İlk olarak, yöntem 1'de gösterildiği gibi , getir Modül penceresine gidin ve bu kodu yazın.
Sub Macro_Email_Single_Sheet() Dim pApp As Object Dim pMail As Object Dim zBook As Workbook Dim fxName As String 'Dim zSheet As Worksheet 'Dim shtName As String Application.ScreenUpdating = False ActiveSheet.Copy Set zBook = ActiveWorkbook fxName = zBook.Worksheets(1).Name On Error Resume Next Kill "C:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName On Error GoTo 0 zBook.SaveAsFileName:="C:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = "[email protected]" .Subject = "Tek Sayfayı E-posta ile Gönderme Makrosu" .Body = "Sayın AlıcıAdı," & vbCrLf & vbCrLf & _ "İstediğiniz dosya ektedir" .Attachments.Add zBook.FullName .Display End WithzBook.ChangeFileAccess Mode:=xlReadOnly Kill zBook.FullName zBook.Close SaveChanges:=False Application.ScreenUpdating = True Set pMail = Nothing Set pApp = Nothing End Sub
VBA Kod Dökümü
- İlk olarak, bizim Alt Prosedür Macro_Email_Single_Sheet .
- İkinci olarak, biz ilan ediyoruz değişken türleri.
- Üçüncüsü, biz kopyalıyoruz Aktif Sayfa ve ayrı bir Çalışma Kitabı .
- Bundan sonra, biz seçiyoruz Görünüm bizim gibi Posta Başvurusu .
- Sonra, ayarlıyoruz e-posta kodumuzdaki içerik.
- Ondan sonra da Levha için e-posta .
- Son olarak, " .Display " adresimizi görüntülemek için e-posta . Bu nedenle, şu tuşa basmamız gerekecek Gönder manuel olarak gönder ve e-postalar Ayrıca, " Gönder " için e-posta gönder görüntülemeden.
- O halde, Kaydet ve Koşmak ve Modül .
Göreceğiz. Levha düğmesine basın. Gönder görevi tamamlamak için.
Biz yapabiliriz açık dosyayı açın ve kodumuzun çalıştığını doğrulayın.
Daha fazlasını okuyun: Düzenlenebilir Excel Elektronik Tablosu E-posta ile Nasıl Gönderilir (3 Hızlı Yöntem)
5. Hücre Değerine Göre E-posta Gönderme Makrosu
Son yöntem için veri kümemizi biraz değiştirdik. Ödeme Neden " sütun Burada, veri kümesine gönder bir e-posta şehri içeren " Obama "Açıkça görebiliyoruz ki 5. sıra onu içeriyor, dolayısıyla gönder bir e-posta sadece o kişiye.
Adımlar:
- İlk olarak, yöntem 1'de gösterildiği gibi , getir Modül penceresine gidin ve bu kodu yazın.
Option Explicit Sub Send_Email_Condition() Dim xSheet As Worksheet Dim mAddress As String, mSubject As String, eName As String Dim eRow As Long, x As Long Set xSheet = ThisWorkbook.Sheets("Conditions") With xSheet eRow = .Cells(.Rows.Count, 5).End(xlUp).Row For x = 5 To eRow If .Cells(x, 4)>= 1 And .Cells(x, 5) = "Obama" Then mAddress = .Cells(x, 3) mSubject = "Request For Payment" eName =.Cells(x, 2) Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName) End If Next x End With End Sub Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String) Dim pApp As Object Dim pMail As Object Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = mAddress .CC = "" .BCC = "" .Subject = mSubject .Body ="Mr./Mrs. " & eName & ", Please pay the due amount within the next week." _ & vbNewLine & "The exact amount is attached with this email." .Attachments.Add ActiveWorkbook.FullName 'Dosyayı E-posta ile Gönder .Display 'Burada da .Send kullanabiliriz End With Set pMail = Nothing Set pApp = Nothing End Sub
VBA Kod Dökümü
- İlk olarak, ilk kez Alt Prosedür Send_Email_Condition .
- İkinci olarak, biz ilan ediyoruz Değişken türleri ve ayarı " Koşullar " olarak Levha .
- Üçüncü olarak, son sıra sayı bulunur. Dahası, değerimiz 5. sıra bu nedenle 5. sıra sonuncusuna kadar sıra kodumuzda.
- Ardından, ikinci Alt Prosedür Send_Email_With_Multiple_Condition .
- Ondan sonra, biz seçiyoruz Görünüm bizim gibi Posta Başvurusu .
- O zaman e-posta içeriği kodumuzda ayarlanmıştır.
- Buraya, aşağıdaki Excel dosyası ile e-posta kullanarak Eklenti yöntem.
- Ondan sonra, " .Display " burada bizim e-posta . Bu nedenle, şu tuşa basmamız gerekecek Gönder manuel olarak gönder ve e-postalar Ayrıca, " Gönder " için e-posta gönder görüntülemeden.
- O halde, Kaydet ve Koşmak ve Modül .
Sonuç olarak, size bir başka yöntem daha gösterdik gönderme bir e-posta kullanarak VBA Makro gelen Excel .
Daha fazlasını okuyun: Excel'den Hücre İçeriğine Göre Otomatik Olarak E-posta Gönderme (2 Yöntem)
Uygulama Bölümü
Her yöntem için alıştırma veri kümeleri ekledik Excel dosya.
Sonuç
Size gösterdik 5 kullanılacak yöntemler Makro için gönder bir e-posta gelen Excel . Okuduğunuz için teşekkürler, başarılı olmaya devam edin!