Microsoft Excel’den e-posta göndermek için yalnızca birkaç basit komut dosyası gerekir. Bu işlevi elektronik tablolarınıza ekleyin ve Excel’de çok daha fazlasını başarabilirsiniz.
Excel makroları, çok fazla programlama bilgisine ihtiyaç duymadan VBA komut dosyalarının yapabildiği birçok şeyi yapabilir. VBA, tüm bilgisayar bilgilerinizle bir elektronik tablo raporu oluşturmak gibi daha gelişmiş rutinleri uygulamanıza olanak tanır.
Bu öğreticiyi video olarak izlemeyi mi tercih ediyorsunuz? Seni koruduk!
Neden Excel’den E-posta Göndermelisiniz?
Microsoft Excel’in içinden bir e-posta göndermek isteyebileceğiniz birçok neden vardır.
Belgeleri veya elektronik tabloları her hafta güncelleyen personeliniz olabilir ve bunu yaptıklarında bir e-posta bildirimi almak isteyebilirsiniz. Veya bir kişi tablonuz olabilir ve hepsine aynı anda tek bir e-posta göndermek isteyebilirsiniz.
Muhtemelen Excel’den bir e-posta yayını komut dosyası yazmanın karmaşık olacağını düşünüyorsunuz. Durum hiç de öyle değil. Bu makaledeki teknik, Excel VBA’da uzun süredir kullanılabilen bir özellik olan İşbirliği Veri Nesneleri’ni (CDO) kullanır.
Windows 2000 Kitaplığı Seçili için Microsoft CDO’lu Excel VBAProject Referanslar Menüsü
CDO, işletim sisteminin çok erken nesillerinden beri Windows’ta kullanılan bir mesajlaşma bileşenidir. Eskiden CDONTS olarak adlandırılırdı ve daha sonra Windows 2000 ve XP’nin ortaya çıkmasıyla birlikte “Windows 2000 için CDO” ile değiştirildi. Bu bileşen, Microsoft Word veya Excel içindeki VBA kurulumunuza zaten dahil edilmiştir ve kullanıma hazırdır.
Bileşeni kullanmak, VBA ile Windows ürünlerinden e-posta göndermeyi son derece kolaylaştırır. Bu örnekte, sonuçları belirli bir Excel hücresinden iletecek bir e-posta göndermek için Excel’deki CDO bileşenini kullanacaksınız.
1. Adım: Gmail Hesabınızı Hazırlayın
Microsoft Excel’den e-posta göndermek için Gmail kullanacağız, ancak aşağıdaki makroyu diğer e-posta istemcileriyle çalışacak şekilde özelleştirebilirsiniz. Gmail’in artık üçüncü taraf uygulama erişimine izin vermediğini, yani önce Gmail’in 2 adımlı kimlik doğrulamasını etkinleştirmeniz gerekeceğini unutmayın .
Google hesabınızın Güvenlik sayfasından , Google’da oturum açma ‘nın altında Uygulama şifreleri ‘ni tıklayın . Uygulama parolaları ekranında, Uygulama seç açılır menüsünü bulun ve Posta’yı seçin . Aygıt seç’ten Windows Bilgisayar’ı seçin . Ardından OLUŞTUR’a tıklayın .
Gmail-Uygulama-Şifreler-1
16 karakterlik uygulama şifresini not edin; makroyu yapılandırırken buna ihtiyacınız olacak.
Adım 2: Bir VBA Makrosu Oluşturun
İpucu: Başlamadan önce, üzerinde çalışacağınız Excel dosyasını Makro-Etkin Çalışma Kitabı olarak , yani XLSM formatında kaydedin.
İlk olarak, Excel Developer sekmesine ihtiyacımız olacak. Görmüyorsanız, nasıl etkinleştireceğiniz aşağıda açıklanmıştır:
Dosya > Seçenekler’e gidin .
Şeridi Özelleştir > Ana Sekmeler altında , Geliştirici seçeneğini işaretleyin.
Değişikliklerinizi kaydetmek için Tamam’ı tıklayın .
Excel Şerit Menüsünü Özelleştir
Excel’in Geliştirici sekmesinde, Kontroller kutusunda Ekle’ye tıklayın ve ardından bir komut düğmesi seçin.
Excel Geliştirici Komut Ekle Düğme Menüsü
Sayfaya çizin ve ardından Geliştirici şeridinde Makrolar’a tıklayarak bunun için yeni bir makro oluşturun.
Excel-KomutDüğmesi-Makro-Menü-1
Oluştur düğmesini tıkladığınızda , VBA düzenleyicisini açacaktır.
Düzenleyicide Araçlar > Referanslar’a giderek referansı CDO kitaplığına ekleyin .
Excel VBA Düzenleyici Araçları Referanslar Menüsü
Windows 2000 Kitaplığı için Microsoft CDO’sunu bulana kadar listeyi aşağı kaydırın . Onay kutusunu işaretleyin ve Tamam’ı tıklayın .
Excel VBA Düzenleyici Referanslar Menüsü
Tamam’ı tıkladığınızda , komut dosyasını yapıştırdığınız işlevin adını not edin. Daha sonra ihtiyacın olacak.
3. Adım: Makronuzu Yapılandırın
Artık posta nesnelerini oluşturmaya ve bir e-posta göndermek için gerekli tüm alanları kurmaya hazırsınız. Alanların çoğu isteğe bağlı olsa da, Başlangıç ve Bitiş alanlarının gerekli olduğunu unutmayın. Aşağıdaki tüm kod parçacıklarını Module1 (Kod) pencerenize yapıştırın.
Kodun tamamı şöyle görünür:
Sub Send_Emails()
Dim NewMail As CDO.Message
Dim mailConfig As CDO.Configuration
Dim fields As Variant
Dim msConfigURL As String
On Error GoTo Err:
‘early binding
Set NewMail = New CDO.Message
Set mailConfig = New CDO.Configuration
‘load all default configurations
mailConfig.Load -1
Set fields = mailConfig.fields
‘Set All Email Properties
With NewMail
.From = “username@gmail.com”
.To = “username@gmail.com”
.CC = “”
.BCC = “”
.Subject = “Send Email From an Excel Spreadsheet”
.TextBody = “This is the body of your email. And here is some added data:” & Str(Sheet1.Cells(2, 1))
.Addattachment “c:dataemail.xlsx” ‘Optional file attachment; remove if not needed.
.Addattachment “c:dataemail.pdf” ‘Duplicate the line for a second attachment.
End With
msConfigURL = “http://schemas.microsoft.com/cdo/configuration”
With fields
.Item(msConfigURL & “/smtpusessl”) = True ‘Enable SSL Authentication
.Item(msConfigURL & “/smtpauthenticate”) = 1 ‘SMTP authentication Enabled
.Item(msConfigURL & “/smtpserver”) = “smtp.gmail.com” ‘Set the SMTP server details
.Item(msConfigURL & “/smtpserverport”) = 465 ‘Set the SMTP port Details
.Item(msConfigURL & “/sendusing”) = 2 ‘Send using default setting
.Item(msConfigURL & “/sendusername”) = “username@gmail.com” ‘Your gmail address
.Item(msConfigURL & “/sendpassword”) = “password” ‘Your password or App Password
.Update ‘Update the configuration fields
End With
NewMail.Configuration = mailConfig
NewMail.Send
MsgBox “Your email has been sent”, vbInformation
Exit_Err:
‘Release object memory
Set NewMail = Nothing
Set mailConfig = Nothing
End
Err:
Select Case Err.Number
Case -2147220973 ‘Could be because of Internet Connection
MsgBox “Check your internet connection.” & vbNewLine & Err.Number & “: ” & Err.Description
Case -2147220975 ‘Incorrect credentials User ID or password
MsgBox “Check your login credentials and try again.” & vbNewLine & Err.Number & “: ” & Err.Description
Case Else ‘Report other errors
MsgBox “Error encountered while sending email.” & vbNewLine & Err.Number & “: ” & Err.Description
End Select
Resume Exit_Err
End Sub
Bunlar, özelleştirmeniz gereken bölümler ve alanlardır:
NewMail ile : Bu bölüm, e-postanızın gövdesi de dahil olmak üzere e-postanızı göndermek için tüm parametreleri içerir. .Kimden alanının Gmail adresinizi içermesi gerekir, ancak diğer alanları istediğiniz gibi ayarlamakta özgürsünüz . Gövde için, yukarıda gösterildiği gibi, Microsoft Excel sayfalarından herhangi birinden doğrudan e-posta mesajına veri eklemek için & dizesini kullanarak mesajın bileşenlerini bir araya getirebilirsiniz . Ayrıca bir veya daha fazla dosya ekleyebilirsiniz.
Alanlarla: Burası, Gmail hesabınız için SMTP ayarlarınızı yapılandırdığınız yerdir. Kodu kopyalarken smtpserver ve smtpserverport alanlarını olduğu gibi bırakın . Gmail kullanıcı adınızı ve 16 haneli uygulama şifrenizi ilgili alanlara girin.
4. Adım: Makronuzu Test Edin
VBA düzenleyicide, Çalıştır > Alt/Kullanıcı Formunu Çalıştır’a gidin veya makroyu test etmek için F5’e basın . E-postanız geçemezse, bir hata mesajı görmelisiniz. Aksi takdirde, e-postanızın başarıyla gönderildiğine dair bir onay görürsünüz.
Excel-Gönder-E-posta-Makro-VBA-E-posta-Gönderildi-1
Aktarım sunucuya bağlanamadı şeklinde bir hata alırsanız , Alanlarla altında listelenen kod satırlarına doğru kullanıcı adını, parolayı, SMTP sunucusunu ve bağlantı noktası numarasını girdiğinizden emin olun .
Adım 5: Komut Düğmesini Komut Dosyanıza Bağlayın
Komut düğmenizi bu komut dosyasına bağlamak için kod düzenleyiciye gidin ve o çalışma sayfasının VBA kodunu görüntülemek için Sayfa1’e çift tıklayın. Soldaki açılır menüden düğmenizi seçin, örneğin CommandButton1 ve sağdaki eylemi tanımlayın; Tıklama çalışır. Ardından, yukarıdaki betiği yapıştırdığınız işlevin adını yazın; örneğimizde Send_Emails .
Excel Komut Düğmesi için E-posta Gönder Makrosu
Şimdi sayfanıza geri döndüğünüzde, e-postayı göndermek için düğmeye tıklayın.
Mesajın gelen kutunuzda nasıl görünmesi gerektiğine dair bir örnek:
Excel VBA Makro İle E-posta Gönder Başarılı
Daha İleri Gidin ve Tüm Süreci Otomatikleştirin
Bir düğmeye dokunarak Excel’den e-posta gönderebilmek her şey yolunda ve güzel. Ancak, bu işlevi düzenli olarak kullanmak isteyebilirsiniz, bu durumda işlemi otomatikleştirmek mantıklıdır. Bunu yapmak için makroda bir değişiklik yapmanız gerekir. Visual Basic Düzenleyiciye gidin ve şimdiye kadar bir araya getirdiğiniz kodun tamamını kopyalayıp yapıştırın.
Ardından , VBAProject hiyerarşisinden ThisWorkbook’a çift tıklayın .
Kod penceresinin üst kısmındaki iki açılır alandan Çalışma Kitabı’nı seçin ve Yöntemler açılır menüsünden Aç’ı seçin.
Yukarıdaki e-posta komut dosyasını Sub Workbook_Open() içine yapıştırın .
Bu, Excel dosyasını her açtığınızda makroyu çalıştıracaktır.
Çalışma Kitabı Açıldığında Excel E-posta Gönder
Ardından, Görev Zamanlayıcı’yı açın . Windows’tan elektronik tabloyu düzenli aralıklarla otomatik olarak açmasını istemek için bu aracı kullanacaksınız; bu noktada makronuz çalışacak ve e-posta gönderecektir.
Windows 11 Görev Zamanlayıcı
Eylem menüsünden, Temel Görev Oluştur… öğesini seçin ve Eylem ekranına ulaşana kadar sihirbazda ilerleyin .
Bir program başlat’ı seçin ve İleri’ye tıklayın . Bilgisayarınızda Microsoft Excel’in konumunu bulmak için Gözat düğmesini kullanın veya yolu kopyalayıp Program/komut dosyası alanına yapıştırın. Ardından, Microsoft Excel belgenizin yolunu Bağımsız değişken ekle alanına girin. Sihirbazı tamamlayın, zamanlamanız yerinde olacaktır.
Eylemi gelecekte birkaç dakika için planlayarak bir test çalıştırmaya ve ardından çalıştığını onayladıktan sonra görevi değiştirmeye değer.
Not : Makronun düzgün çalıştığından emin olmak için Güven Merkezi ayarlarınızı yapmanız gerekebilir.
Bunu yapmak için e-tabloyu açın ve Dosya > Seçenekler > Güven Merkezi’ne gidin . Buradan, Güven Merkezi Ayarları… öğesini tıklayın ve sonraki ekranda radyo kadranını Engellenen içerikle ilgili bilgileri Hiçbir zaman gösterme olarak ayarlayın .
Microsoft Excel’in Sizin İçin Çalışmasını Sağlayın
Microsoft Excel inanılmaz derecede güçlü bir araçtır, ancak bundan en iyi şekilde nasıl yararlanılacağını öğrenmek biraz korkutucu olabilir. Yazılımda gerçekten ustalaşmak istiyorsanız, VBA ile rahat olmanız gerekir ve bu küçük bir iş değildir.
Ancak, sonuçlar kendileri için konuşur. Kemerinizin altındaki küçük bir VBA deneyimiyle, yakında Microsoft Excel’in temel görevleri otomatik olarak gerçekleştirmesini sağlayarak size daha acil konulara konsantre olmanız için daha fazla zaman kazandırabileceksiniz.