Excel'den E-posta Göndermek İçin VBA Kodu Nedir?
Excel'den e-posta göndermek için VBA kodunu kullanarak tekrarlayan görevleri otomatikleştirebilir, verimliliği artırabilir ve alıcılarınızla doğru ve zamanında iletişim sağlayabilirsiniz. Excel ve Outlook arasında kusursuz entegrasyon sağlayarak e-posta otomasyonu için kullanışlı bir çözüm sunar.
Sağlanan ekran görüntüsünde, e-posta göndermek için VBA kodunu çalıştırdığımızda Outlook'un otomatik olarak başlatıldığını görüyoruz.
E-postanın alıcıları, konu satırı ve gövdesi koda göre doldurulur, bu da süreci hızlandırır ve toplu e-posta gönderiminde zamandan tasarruf sağlayan bir çözüm sunar.

VBA kullanarak Excel'den E-posta Nasıl Gönderilir?
VBA kullanarak Excel'den e-posta göndermek için aşağıdaki adımları izleyin.
- Outlook uygulama nesnesi, posta öğesi nesnesi, e-posta konusu, gövdesi ve alıcının e-posta adresi gibi önemli bilgileri depolamak için değişkenleri başlatmanız gerekir.
- Ardından, Outlook uygulamasının bir örneğini ve yeni bir posta öğesi nesnesini oluşturun.
- Konu, gövde ve alıcılar gibi ilgili özelliklerini ayarlayarak e-postanın içeriğini özelleştirebilirsiniz.
- Ayrıca “Attachments.Add” metodunu kullanarak e-postaya dosya ekleyebilirsiniz.
Microsoft Office Kitaplığına Başvuru Nasıl Ayarlanır?
Microsoft Office Kitaplığı'na bir başvuru ayarlamak, Outlook gibi Microsoft Office uygulamalarının özelliklerini kullanmak için Excel'de VBA koduyla çalışırken önemli bir adımdır. Bu başvuru, Outlook ile sorunsuz bir şekilde etkileşim kurmak için kitaplık tarafından sağlanan gerekli nesnelere ve yöntemlere erişmemizi sağlar. İşte başvurunun nasıl ayarlanacağına dair adım adım bir kılavuz:
- Alt+F11 tuşlarına basarak Excel'de Visual Basic Düzenleyicisi'ni (VBE) açın.

- VBE penceresinde “Araçlar” menüsüne gidin ve açılır menüden “Referanslar”ı seçin. Referanslar iletişim kutusu açılacaktır.

- Başvurular iletişim kutusunda aşağı kaydırın ve “Microsoft Office XX.0 Object Library” adlı girişi bulun; burada “XX.0” bilgisayarınıza yüklenen Microsoft Office sürüm numarasını temsil eder. Örneğin, Office 2016 için “Microsoft Office 16.0 Object Library” olabilir.

- Seçmek için “Microsoft Office XX.0 Nesne Kitaplığı” girişinin yanındaki onay kutusunu işaretleyin.
- Referanslar iletişim kutusunu kapatmak için “Tamam” butonuna tıklayın.
Bu başvuruyu ayarlayarak, VBA'nın Microsoft Office Kitaplığı'nda bulunan nesneleri ve yöntemleri, Outlook'a özgü olanlar da dahil olmak üzere tanımasını ve kullanmasını sağlarsınız. E-posta gönderme veya Outlook öğelerini düzenleme gibi Outlook ile etkileşim kuran VBA kodu yazmanıza olanak tanır.
Referansı Microsoft Office Kitaplığı'na ayarlamak, VBA kodunuzun Excel'i Outlook ile sorunsuz bir şekilde entegre etmek için gereken araçlara ve işlevlere erişebilmesini sağlar ve görevleri otomatikleştirmek ve üretkenliği artırmak için çok çeşitli olanaklar sunar.
Excel'den E-posta Göndermek İçin 13 Kolay Adım
VBA kullanarak e-posta göndermek için Microsoft Outlook'un yeteneklerinden faydalanmanız gerekir. İşte Outlook kullanarak Excel'den e-posta gönderen bir VBA koduna örnek. Lütfen “VBA Send Email from Excel” Excel çalışma kitabına bakın.
- Adım 1: Excel'de Alt + F11 tuşlarına basarak veya şeritteki Geliştirici sekmesine tıklayarak Visual Basic Düzenleyicisi'ni (VBE) açın ve ardından Visual Basic düğmesine tıklayın. VBE'de Ekle menüsüne tıklayın ve yeni bir modül oluşturmak için Modül'ü seçin.

- Adım 2: Yeni modülde “SendEmail” adlı alt prosedürü başlatın ve gerekli değişkenleri ve nesneleri bildirin.

Bu örnek için, iki değişkeni ("OutlookApp" ve "OutlookMail") nesne olarak bildiriyoruz. Bu nesneler Outlook ile etkileşim kurmak ve bir e-posta oluşturmak için kullanılacaktır.
- Adım 3: Outlook'un yeni bir örneğini oluşturun.

Yukarıdaki kod satırı Outlook'un yeni bir örneğini oluşturur ve onu "OutlookApp" değişkenine atar. Outlook'un özelliklerine ve işlevselliğine erişmemizi sağlar.
- Adım 4: Set ifadesini kullanarak yeni bir e-posta oluşturun .

Bu kod satırı, “OutlookApp” nesnesinin “CreateItem” metodunu kullanarak yeni bir e-posta öğesi oluşturur. “(0)” argümanı, bir e-posta oluşturmak istediğimizi belirtir.
- Adım 5: E-postanın özelliklerini ayarlayın.

Bu kod, “With” ifadesini kullanarak e-postanın çeşitli özelliklerini ayarlar.
- Adım 6: Alıcının e-posta adresini girin.

“recipient@example.com” adresini alıcının gerçek e-posta adresiyle değiştirin. Bu, e-postanın “Kime” alanını ayarlar.
- Adım 7: CC alanına ek alıcıları girin.

E-postadaki herhangi birini karbon kopyası (CC) yapmak istiyorsanız, “cc@example.com”u gerçek e-posta adresiyle değiştirin. Bu, e-postanın “CC” alanını ayarlar.
- Adım 8: Gizli kopya alanına ek alıcıları girin.

E-postadaki herhangi birini gizli karbon kopyası (BCC) yapmak istiyorsanız, “bcc@example.com” ifadesini gerçek e-posta adresiyle değiştirin. Bu, e-postanın “BCC” alanını ayarlar.
- Adım 9: E-postanın konusunu belirleyin.

"Test E-postası"nı e-postanız için istediğiniz konu ile değiştirin. E-postanın konu alanını ayarlar.
- Adım 10: E-postanın gövdesini ayarlayın.

Tırnak işaretleri içindeki metni e-posta gövdesi için istenen içerikle değiştirin. E-postanın gövde metnini ayarlar.
- Adım 11: Göndermeden önce e-postayı incelenmek üzere görüntüleyin.

Bu kod satırı, e-postayı Outlook'ta görüntüler ve göndermeden önce içeriğini, alıcılarını, konusunu ve diğer ayrıntıları incelemenize olanak tanır.
Eğer e-postayı göndermek istiyorsanız, VBA kodunda “.Display” ifadesini “.Send” ile değiştirmeniz yeterlidir.
- Adım 12: Outlook nesnelerini temizleyin.

E-postayı gönderdikten veya e-posta penceresini kapattıktan sonra, sistem kaynaklarını boşaltmak için Outlook nesnelerini bellekten serbest bırakmak önemlidir. Nesneleri Nothing olarak ayarlamak düzgün bir temizlik sağlar.
- Adım 13: Kodu özelleştirin ve test edin.
Açıklama: E-posta alıcılarını, konuyu, gövdeyi ve diğer özellikleri özel ihtiyaçlarınıza uyacak şekilde değiştirerek kodu özelleştirin. İşiniz bittiğinde, e-postayı VBA kullanarak Excel'den göndermek için kodu çalıştırın.
İşte tam kod:
Sub SendEmail()
Dim OutlookApp As Object
Dim OutlookMail As Object
' Create a new instance of Outlook
Set OutlookApp = CreateObject("Outlook.Application")
' Create a new email
Set OutlookMail = OutlookApp.CreateItem(0)
' Set the properties of the email
With OutlookMail
.To = "recipient@example.com"
.CC = "cc@example.com"
.BCC = "bcc@example.com"
.Subject = "Test Email"
.Body = "This is a test email sent from Excel."
.Display ' Use .Send instead of .Display to send the email without displaying it
End With
' Clean up
Set OutlookMail = Nothing
Set OutlookApp = NothingEnd Sub
Dikkat Edilmesi Gereken Önemli Noktalar
VBA kullanarak Excel'den e-posta gönderirken aklınızda bulundurmanız gereken birkaç önemli husus vardır.
- Excel'den imzalı bir e-posta göndermek için VBA kullanırken, imza e-posta gövdesine dahil edilmeyebilir. Varsayılan olarak, VBA aracılığıyla oluşturulan e-posta gövdesi kullanıcının Outlook imzasını içermez. Bu nedenle, imzayı VBA kodunuzda açıkça işlemeniz gerekir.
- VBA kullanarak Excel aralığından e-posta gönderirken, e-posta verilerini içeren hücre aralığını doğru bir şekilde belirtin. Aralığın, alıcıların e-posta adresleri, konu ve gövde içeriği dahil olmak üzere tüm gerekli bilgileri içerdiğinden emin olun. Verilerin istenen e-posta düzeniyle uyumlu olacak şekilde düzenlendiğinden emin olun.
- VBA kullanarak Oft şablonunu kullanarak Excel'den e-posta gönderirken, “Outlook.Application” ve “Outlook.MailItem” gibi gerekli Outlook nesnelerini bildirmek ve oluşturmak önemlidir.
- VBA kullanırken Excel'den eki olan e-posta gönderirken, dosya yollarının doğru ve erişilebilir olduğundan emin olun. Dosya boyutu sınırlamalarını ve e-posta teslimi ve alıcının gelen kutusu üzerindeki etkisini göz önünde bulundurun.
VBA kullanarak Outlook'tan toplu e-posta göndermek için Excel'den e-posta göndermek için şu adımları izleyin:
1) Öncelikle alıcı e-posta adresleri, konu ve gövde içeren bir Excel elektronik tablosu hazırlayın.
2) VBA'da “Microsoft Outlook Nesne Kitaplığı” başvurusunu etkinleştirin.
3) Elektronik tabloda döngü oluşturup e-posta göndermek için bir VBA alt yordamı yazın. Bunu yapmak için aşağıdaki kodu kullanarak çalışma sayfasında bir e-posta adresi aralığı ayarlayabilirsiniz:
“Set Recipients = Sheets(“Sheet1”).Range(“A2:A10”) ' Sayfa adını ve aralığını gerektiği gibi güncelleyin”
4) “CreateObject” kullanarak Outlook uygulama ve posta öğesi nesnelerini bildirin.
5) Bir döngü kullanarak her alıcı üzerinde yineleme yapın. Bu, aşağıdaki kod kullanılarak yapılabilir:
For Each Recipient In Recipients
' Yeni bir e-posta oluşturun
Set OutlookMail = OutlookApp.CreateItem(0)
6) Toplu e-posta göndermek için kodu çalıştırın.
7) Geri bildirimlere göre süreci inceleyin ve iyileştirin.
VBA kullanarak bir Excel çalışma sayfasından otomatik olarak e-posta göndermek için şu adımları izleyin:
1) Gerekli e-posta ayrıntılarıyla Excel çalışma sayfasını hazırlayın.
2) VBA'da “Microsoft Outlook Nesne Kitaplığı” başvurusunu etkinleştirin.
3) E-postaları otomatik olarak göndermek için bir VBA alt rutini yazın.
4) “CreateObject” kullanarak Outlook uygulamasını ve posta öğesi nesnelerini bildirin.
5) Çalışma sayfası değerlerini kullanarak posta öğesi özelliklerini (Kime, CC, BCC, Konu, Gövde) ayarlayın.
6) Kullanıcı müdahalesi olmadan e-posta göndermek için “Gönder” yöntemini kullanın.
7) Olası sorunları ele almak için hata işleme uygulayın.
8) Doğruluk için kodu test edin ve hata ayıklayın.
9) Gerekirse ekler veya HTML biçimlendirmesi ekleyin.
10) E-postaları otomatik olarak göndermek için VBA kodunu çalıştırın.
11) Alıcının gelen kutusunda başarılı teslimatı doğrulayın.
12) Geri bildirime göre kodu iyileştirin ve optimize edin.
13) VBA koduyla Excel dosyasının bir yedeğini tutun.
Yeni bir posta öğesi oluşturduktan ve alıcılar, konu ve gövde gibi temel özellikleri ayarladıktan sonra e-postaya bir dosya ekleyebilirsiniz. Ekin dosya yolunu belirtin ve dosyayı eklemek için “Attachments.Add” yöntemini kullanın.
Örneğin, Excel dosyasıyla aynı dizinde bulunan “example.xlsx” adlı bir dosyayı eklemek için şu kodu kullanırsınız:
EmailItem.Attachments.Add ThisWorkbook.Path & “\example.xlsx”
Şimdi, e-postayı “Gönder” yöntemini kullanarak gönderin: EmailItem.Send
Excel VBA'dan e-posta göndermenin çalışmamasının birkaç nedeni olabilir. İşte bazı olası nedenler:
1) Yanlış e-posta yapılandırması: SMTP sunucusu, bağlantı noktası, kullanıcı adı ve parola dahil olmak üzere e-posta hesabı ayarlarının VBA kodunuzda doğru şekilde yapılandırıldığından emin olun.
2) Eksik veya güncel olmayan referanslar: Microsoft Outlook veya Microsoft Office Nesne Kitaplığı gibi gerekli referansların VBA düzenleyicisinde düzgün şekilde ayarlanıp ayarlanmadığını kontrol edin.
3) Güvenlik ayarları veya güvenlik duvarları: Bilgisayarınızdaki antivirüs yazılımları, güvenlik duvarları veya güvenlik ayarları e-posta gönderme işlevini engelliyor olabilir.
4) Geçersiz e-posta adresleri: Alıcıların, CC veya BCC'nin e-posta adreslerinin doğru girildiğini doğrulayın. Dahili kısıtlamalar: Bazı kuruluşların otomatik e-postaların gönderilmesini engelleyen dahili politikaları veya kısıtlamaları olabilir.
