Bir Excel çalışma kitabındaki tüm çalışma sayfalarını ayrı Outlook e-postaları olarak göndermek isterseniz, bu makalede açıklanan yöntemi kullanabilirsiniz. Tek tek gönderme zahmetine girmeden toplu halde gerçekleştirmeniz için size yol gösterebilir.
Bir önceki yazımda "Excel Çalışma Sayfasını Outlook E-postası Olarak Göndermenin 2 Hızlı Yöntemi“Bir Excel çalışma sayfasını e-posta olarak göndermenin iki yolunu öğrenebilirsiniz. Eğer bir çalışma kitabındaki tüm çalışma sayfalarını ayrı ayrı e-posta olarak toplu göndermek istiyorsanız, o yazıda bahsedilen iki yöntemden herhangi birini kullanmak oldukça zahmetli ve sorunlu olacaktır. Bu nedenle, burada bu tür “Toplu Gönderme” işlemini hızlı bir şekilde gerçekleştirebilecek başka bir yöntem tanıtacağız.

Bir Excel Çalışma Kitabındaki Tüm Çalışma Sayfalarını Toplu Olarak Ayrı E-postalar Olarak Gönderin
- İlk olarak, kaynak Excel çalışma kitabını açmalısınız.
- Ardından, Excel penceresine girdikten sonra “Alt + F11” kısayol tuşlarına dokunmalısınız.
- Ardından, “Uygulamalar için Microsoft Visual Basic” adlı başka bir pencere görüntülenecektir.
- İçinde kullanılmayan bir modülü açmanız veya yeni bir modül eklemeniz gerekir.
- Daha sonra aşağıdaki VBA kodunu bu modüle kopyalayabilirsiniz.
Sub SendEachWorksheet_inOutlookEmail()
Dim objWorksheet As Excel.Worksheet
Dim objRange As Excel.Range
Dim objTempWorkbook As Excel.Workbook
Dim objTempWorksheet As Excel.Worksheet
Dim strTempFolder As String
Dim strHTMLFile As String
Dim objHTMLFile As Object
Dim objFileSystem As Object
Dim objTextStream As Object
Dim objOutlookApp As Outlook.Application
Dim objMail As Outlook.MailItem
For Each objWorksheet In ActiveWorkbook.Sheets
Set objRange = objWorksheet.UsedRange
objRange.Copy
Set objTempWorkbook = Excel.Application.Workbooks.Add(1)
Set objTempWorksheet = objTempWorkbook.Sheets(1)
With objTempWorksheet.Cells(1)
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteFormats
End With
strTempFolder = CStr(Environ("USERPROFILE")) & "\AppData\Local\Temp"
strHTMLFile = strTempFolder & "\Temp" & Format(Now, "yyyymmddhhmmss") & ".htm"
Set objHTMLFile = objTempWorkbook.PublishObjects.Add(xlSourceRange, strHTMLFile, objTempWorksheet.Name, objTempWorksheet.UsedRange.Address)
objHTMLFile.Publish (True)
Set objOutlookApp = CreateObject("Outlook.Application")
Set objMail = objOutlookApp.CreateItem(olMailItem)
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFileSystem.OpenTextFile(strHTMLFile)
objMail.HTMLBody = objTextStream.ReadAll
'Change the email details as per your needs
With objMail
.To = "test@datanumen.com"
.Subject = objWorksheet.Name
.Display
End With
objTextStream.Close
objTempWorkbook.Close False
Kill strHTMLFile
Next
End Sub
- Daha sonra F5 tuşu veya araç çubuğundaki “Çalıştır” ikonuna basarak bu makroyu tetikleyebilirsiniz.
- Bir kerede, bu Excel çalışma kitabındaki tüm çalışma sayfalarına karşılık gelen e-postalar Outlook'ta görüntülenecektir.
- Son olarak, tüm e-postaların ayrıntılarını tekrar kontrol edebilir ve son olarak e-postaları göndermek için “Gönder” düğmesine tıklayabilirsiniz.
Yedekleme Yoksa Güçlü Bir Kurtarma Aracı Uygulayın
Giderek daha fazla kullanıcı veri yedeklemenin önemini anladı. PST dosyanızı yedeklediğiniz sürece, PST kurtarma hasardan sonra oldukça basit olacaktır. Ancak etkili ve güncel bir PST yedeği yoksa, harici bir PST onarım aracından yardım almaktan başka seçeneğiniz yoktur. DataNumen Outlook Repair. Güvenliği ihlal edilmiş PST dosyalarını bir esinti gibi onarabilir.
Yazar Tanıtımı:
Shirley Zhang, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. sql'yi kurtar ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com
