Excel VBA yalnızca Excel içinde kalmak zorunda değil — CreateObject ile diğer Office uygulamalarını (Outlook, PowerPoint, Word) da kontrol edebilirsiniz. Bu derste Outlook'u kullanarak toplu e-posta göndereceğiz.
Outlook Nesnesi Oluşturmak
Dim outlookApp As Object
Dim mail As Object
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)
CreateObject("Outlook.Application"), bilgisayarınızda kurulu Outlook uygulamasına VBA'dan bağlanmanızı sağlar — bu çalışması için Outlook'un kurulu (ve bir hesapla yapılandırılmış) olması gerekir.
Bir E-postayı Ayarlamak ve Göndermek
With mail
.To = "ornek@eposta.com"
.Subject = "Bilgilendirme"
.Body = "Merhaba, bu otomatik bir mesajdır."
.Send
End With
Excel Listesinden Toplu Gönderim
Dim sonSatir As Long, i As Long
sonSatir = Worksheets("Database").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To sonSatir
Dim eposta As String, isim As String
isim = Worksheets("Database").Range("B" & i).Value
eposta = Worksheets("Database").Range("D" & i).Value
Set mail = outlookApp.CreateItem(0)
With mail
.To = eposta
.Subject = "Merhaba " & isim
.Body = isim & " Bey/Hanım, bilgilendirme mesajınızdır."
.Send
End With
Next i
Döngü her satırda listeden bir isim ve e-posta alıp, kişiselleştirilmiş bir mesaj oluşturup gönderir — bir listedeki herkese ayrı ayrı mail yazmak yerine tek bir çalıştırma yeterlidir.
Dikkat
Toplu e-posta gönderirken alıcı sayısına ve içeriğe dikkat edin — istenmeyen/onaysız toplu gönderimler e-posta sağlayıcınız tarafından spam olarak işaretlenebilir veya hesabınızı kısıtlanabilir. Bu yöntemi yalnızca gönderim izniniz olan kişiler için kullanın.
Sırada Ne Var?
Sırada, aynı otomasyon mantığını PowerPoint ile toplu belge/PDF üretmek için uygulayacağız.