Outlook'ta excel'e birden çok klasörden / alt klasörden e-postalar nasıl dışa aktarılır?
Outlook'ta Alma ve Verme sihirbazıyla bir klasörü dışa aktarırken, Alt klasörler dahil Klasörü CSV dosyasına dışa aktarırsanız seçenek. Ancak, her klasörü CSV dosyasına aktarmak ve ardından manuel olarak Excel çalışma kitabına dönüştürmek oldukça zaman alıcı ve yorucu olacaktır. Burada, bu makale, birden çok klasörü ve alt klasörü Excel çalışma kitaplarına kolaylıkla dışa aktarmak için bir VBA tanıtacaktır.
VBA ile birden çok klasörden / alt klasörden birden çok e-postayı Excel'e aktarın
- E-posta göndermeyi otomatikleştirin Otomatik CC / BCC, Otomatik İleri kurallara göre; Göndermek Otomatik cevap (Ofis Dışında) değişim sunucusu gerektirmeden...
- Şunun gibi hatırlatıcılar alın: BCC Uyarısı BCC listesindeyken herkese yanıt verirken ve Eksik Olduğunda Hatırlat Unutulan eklentiler için...
- E-posta verimliliğini artırın Yanıtla (Tümü) Eklerle birlikte, İmzaya veya Konuya Otomatik Selamlama veya Tarih ve Saat Ekleme, Birden Fazla E-postayı Yanıtlayın...
- E-posta göndermeyi kolaylaştırın E-postaları Geri Çağırma, Ek Araçları (Tümünü Sıkıştır, Tümünü Otomatik Kaydet...), Yinelemeleri Kaldır, ve Hızlı rapor...
VBA ile birden çok klasörden / alt klasörden birden çok e-postayı Excel'e aktarın
Outlook'ta VBA ile birden çok klasör veya alt klasördeki e-postaları Excel çalışma kitaplarına aktarmak için lütfen aşağıdaki adımları izleyin.
1. Basın Ara Toplam + F11 Microsoft Visual Basic for Applications penceresini açmak için tuşlar.
2. tık Ekle > modülve ardından yeni Modül penceresine VBA kodunun altına yapıştırın.
VBA: E-postaları birden çok klasör ve alt klasörden Excel'e aktarın
Const MACRO_NAME = "Export Outlook Folders to Excel"
Sub ExportMain()
ExportToExcel "destination_folder_path\A.xlsx", "your_email_accouny\folder\subfolder_1"
ExportToExcel "destination_folder_path\B.xlsx", "your_email_accouny\folder\subfolder_2"
MsgBox "Process complete.", vbInformation + vbOKOnly, MACRO_NAME
End Sub
Sub ExportToExcel(strFilename As String, strFolderPath As String)
Dim olkMsg As Object
Dim olkFld As Object
Dim excApp As Object
Dim excWkb As Object
Dim excWks As Object
Dim intRow As Integer
Dim intVersion As Integer
If strFilename <> "" Then
If strFolderPath <> "" Then
Set olkFld = OpenOutlookFolder(strFolderPath)
If TypeName(olkFld) <> "Nothing" Then
intVersion = GetOutlookVersion()
Set excApp = CreateObject("Excel.Application")
Set excWkb = excApp.Workbooks.Add()
Set excWks = excWkb.ActiveSheet
'Write Excel Column Headers
With excWks
.Cells(1, 1) = "Subject"
.Cells(1, 2) = "Received"
.Cells(1, 3) = "Sender"
End With
intRow = 2
For Each olkMsg In olkFld.Items
'Only export messages, not receipts or appointment requests, etc.
If olkMsg.Class = olMail Then
'Add a row for each field in the message you want to export
excWks.Cells(intRow, 1) = olkMsg.Subject
excWks.Cells(intRow, 2) = olkMsg.ReceivedTime
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
intRow = intRow + 1
End If
Next
Set olkMsg = Nothing
excWkb.SaveAs strFilename
excWkb.Close
Else
MsgBox "The folder '" & strFolderPath & "' does not exist in Outlook.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The folder path was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The filename was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Set olkMsg = Nothing
Set olkFld = Nothing
Set excWks = Nothing
Set excWkb = Nothing
Set excApp = Nothing
End Sub
Public Function OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder
Dim arrFolders As Variant
Dim varFolder As Variant
Dim bolBeyondRoot As Boolean
On Error Resume Next
If strFolderPath = "" Then
Set OpenOutlookFolder = Nothing
Else
Do While Left(strFolderPath, 1) = "\"
strFolderPath = Right(strFolderPath, Len(strFolderPath) - 1)
Loop
arrFolders = Split(strFolderPath, "\")
For Each varFolder In arrFolders
Select Case bolBeyondRoot
Case False
Set OpenOutlookFolder = Outlook.Session.Folders(varFolder)
bolBeyondRoot = True
Case True
Set OpenOutlookFolder = OpenOutlookFolder.Folders(varFolder)
End Select
If Err.Number <> 0 Then
Set OpenOutlookFolder = Nothing
Exit For
End If
Next
End If
On Error GoTo 0
End Function
Function GetSMTPAddress(Item As Outlook.MailItem, intOutlookVersion As Integer) As String
Dim olkSnd As Outlook.AddressEntry
Dim olkEnt As Object
On Error Resume Next
Select Case intOutlookVersion
Case Is < 14
If Item.SenderEmailType = "EX" Then
GetSMTPAddress = SMTPEX(Item)
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
Case Else
Set olkSnd = Item.Sender
If olkSnd.AddressEntryUserType = olExchangeUserAddressEntry Then
Set olkEnt = olkSnd.GetExchangeUser
GetSMTPAddress = olkEnt.PrimarySmtpAddress
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
End Select
On Error GoTo 0
Set olkPrp = Nothing
Set olkSnd = Nothing
Set olkEnt = Nothing
End Function
Function GetOutlookVersion() As Integer
Dim arrVer As Variant
arrVer = Split(Outlook.Version, ".")
GetOutlookVersion = arrVer(0)
End Function
Function SMTPEX(olkMsg As Outlook.MailItem) As String
Dim olkPA As Outlook.propertyAccessor
On Error Resume Next
Set olkPA = olkMsg.propertyAccessor
SMTPEX = olkPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x5D01001E")
On Error GoTo 0
Set olkPA = Nothing
End Function
3. Lütfen yukarıdaki VBA kodunu ihtiyaç duyduğunuz şekilde ayarlayın.
(1) Değiştirin hedef_klasör_yolu hedef klasörün klasör yolu ile yukarıdaki kodda, dışa aktarılan çalışma kitaplarını, örneğin C: \ Kullanıcılar \ DT168 \ Belgeler \ TEST.
(2) Yukarıdaki kodda e-posta_accouny \ klasörünüz \ altklasör_1 ve e-posta_accouny \ klasörünüz \ altklasör_2 yerine Outlook'taki alt klasörlerin klasör yollarını, örneğin: \Gelen Kutusu\A ve \Gelen Kutusu\B
4. Tuşuna basın. F5 anahtarı veya tıklayın koşmak Bu VBA'yı çalıştırmak için düğmesine basın. Ve sonra tıklayın OK Outlook Klasörlerini Excel'e Aktar iletişim kutusunda açılır. Ekran görüntüsüne bakın:
Ve şimdi yukarıdaki VBA kodunda belirtilen tüm alt klasörlerden veya klasörlerden gelen e-postalar dışa aktarılır ve Excel çalışma kitaplarına kaydedilir.
İlgili Makaleler
E-postaları tarih aralığına göre Excel dosyasına veya Outlook'ta PST dosyasına aktarın
Outlook'taki tüm klasörlerin ve alt klasörlerin listesini dışa aktarın ve yazdırın
En İyi Ofis Üretkenlik Araçları
Outlook için Kutools - Outlook'unuzu Güçlendirecek 100'den Fazla Güçlü Özellik
🤖 AI Posta Yardımcısı: Yapay zeka büyüsüyle anında profesyonel e-postalar: tek tıkla dahice yanıtlar, mükemmel ton, çok dilli ustalık. E-posta göndermeyi zahmetsizce dönüştürün! ...
???? E-posta Otomasyonu: Ofis Dışında (POP ve IMAP için kullanılabilir) / E-posta Gönderimini Planla / E-posta Gönderirken Kurallara Göre Otomatik CC/BCC / Otomatik İletme (Gelişmiş Kurallar) / Otomatik Karşılama Ekleme / Çok Alıcılı E-postaları Otomatik Olarak Bireysel Mesajlara Bölün ...
📨 E-posta Yönetimi: E-postaları Kolayca Geri Çağırın / Dolandırıcılık E-postalarını Konulara ve Diğerlerine Göre Engelleyin / Yinelenen E-postaları Silin / gelişmiş Arama / Klasörleri Birleştir ...
📁 Ekler Pro: Toplu Kaydetme / Toplu Ayır / Toplu Sıkıştırma / Otomatik kaydet / Otomatik Ayır / Otomatik Sıkıştır ...
🌟 Arayüz Büyüsü: 😊Daha Fazla Güzel ve Havalı Emoji / Sekmeli Görünümlerle Outlook Verimliliğinizi Artırın / Outlook'u Kapatmak Yerine Küçültün ...
👍 Tek Tıklamayla Harikalar: Tümünü Gelen Eklerle Yanıtla / Kimlik Avına Karşı E-postalar / 🕘Gönderenin Saat Dilimini Göster ...
👩🏼🤝👩🏻 Kişiler ve Takvim: Seçilen E-postalardan Toplu Kişi Ekleme / Kişi Grubunu Bireysel Gruplara Bölme / Doğum Günü Hatırlatıcılarını Kaldır ...
üzerinde 100 Özellikler Keşfinizi Bekleyin! Daha Fazlasını Keşfetmek İçin Buraya Tıklayın.