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.

VBA Komut Dosyalarını Kullanarak Bir Excel Elektronik Tablosundan E-posta Gönderme

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.

VBA Komut Dosyalarını Kullanarak Bir Excel Elektronik Tablosundan E-posta Gönderme

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

VBA Komut Dosyalarını Kullanarak Bir Excel Elektronik Tablosundan E-posta Gönderme

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir