Note: The other languages of the website are Google-translated. Back to English

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

Office Sekmesi - Office'te Sekmeli Düzenleme ve Taramayı Etkinleştirin ve Çalışmayı Çok Daha Kolay Hale Getirin ...
Kutools for Outlook - Microsoft Outlook'a 100 Güçlü Gelişmiş Özellik Getiriyor
  • Otomatik CC / BCC e-posta gönderirken kurallara göre; Otomatik İleri Kurallara göre Birden Fazla E-posta; Otomatik cevap değişim sunucusu olmadan ve daha fazla otomatik özellik ...
  • BCC Uyarısı - posta adresiniz BCC listesindeyse tümünü yanıtlamaya çalıştığınızda mesajı gösterin; Eksik Olduğunda Hatırlatve daha fazlası özellikleri hatırlat ...
  • Tüm Eklerle Yanıtla (Hepsi) posta görüşmesinde; Birçok E-postayı aynı anda yanıtlayın; Otomatik Karşılama Ekleme cevap verdiğinde; Konuya Otomatik Tarih ve Saat Ekle ...
  • Ek Araçları: Otomatik Ayır, Tümünü Sıkıştır, Tümünü Yeniden Adlandır, Tümünü Otomatik Kaydet ... Hızlı rapor, Seçilen Postaları Say, Yinelenen Postaları ve Kişileri Kaldır ...
  • 100'den fazla gelişmiş özellik problemlerinin çoğunu çöz Outlook 2021 - 2010 veya Office 365'te. Tam özellikler 60 günlük ücretsiz deneme.

ok mavi sağ balon 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: Kelly @extendoffice.com \ Gelen Kutusu \ A ve Kelly @extendoffice.com \ 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.


ok mavi sağ balonİlgili Makaleler


Outlook için Kutools - Outlook'a 100 Gelişmiş Özellik Getirir ve Çalışmayı Çok Daha Kolay Hale Getirir!

  • Otomatik CC / BCC e-posta gönderirken kurallara göre; Otomatik İleri Özel olarak birden çok E-posta; Otomatik cevap değişim sunucusu olmadan ve daha fazla otomatik özellik ...
  • BCC Uyarısı - tümünü yanıtlamaya çalıştığınızda mesaj göster posta adresiniz BCC listesindeyse; Eksik Olduğunda Hatırlatve daha fazlası özellikleri hatırlat ...
  • Posta görüşmesindeki Tüm Eklerle Yanıtla (Tümü); Birçok E-postayı Yanıtla saniyeler içinde; Otomatik Karşılama Ekleme cevap verdiğinde; Konuya Tarih Ekle ...
  • Ek Araçları: Tüm Postalardaki Tüm Ekleri Yönetin, Otomatik Ayır, Tümünü Sıkıştır, Tümünü Yeniden Adlandır, Tümünü Kaydet ... Hızlı Rapor, Seçili Postaları Say...
  • Güçlü Önemsiz E-postalar özel olarak; Yinelenen Postaları ve Kişileri Kaldır... Outlook'ta daha akıllı, daha hızlı ve daha iyi yapmanızı sağlar.
shot kutools görünüm kutools sekmesi 1180x121
shot kutools görünüm kutools artı sekme 1180x121
 
Yorumları sıralama ölçütü
Yorumlar (10)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunun otomatik olarak alt klasörlere geri dönmesini nasıl sağlayabilirim?
Bu yorum sitedeki moderatör tarafından en aza indirildi
merhaba canım, her şey iyi çalışıyor çok teşekkürler ama gövde dışa aktarılmamış, ben de e-posta gövdesini nasıl dışa aktarabilirim, excel dosyası sadece (Konu, Alınan ve Gönderen), beni güncelleyebilirseniz çok büyük bir sorunu çözecektir benim işim çok teşekkürler tekrar
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Montaser,
VBA komut dosyası, e-postaları bir posta klasöründen toplu olarak dışa aktarırken ileti içeriğinin dışa aktarılmasını desteklemeyen Outlook'un Dışa Aktarma özelliğini temel alarak çalışır. Bu nedenle, bu VBA betiği mesaj içeriğini de dışa aktaramaz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu harika çalışıyor, ancak yalnızca yukarıdaki 4 alan için değil, Outlook'un PST'ye dışa aktardığı tüm bilgiler için bilgi eklemenin bir yolu var mı? Konu Gövde Kimden: (Ad) Kimden: (Adres) Kimden: (Tür) Kime: (Ad) Kime: (Adres) Kime: (Tür) CC: (Ad) CC: (Adres) CC: (Tür) BCC: ( Ad) Gizli: (Adres) Gizli: (Tip) Fatura Bilgileri Kategoriler Önem Kilometre Hassasiyet

"Önem" eklemeyi denedim ve işe yarıyor, ancak birisi diğer alanlar için kod sağlayabilirse sevinirim. teşekkür ederim!!
excWks ile
.Cells(1, 1) = "Konu"
.Cells(1, 2) = "Alındı"
.Cells(1, 3) = "Gönderen"
.Cells(1, 4) = "Gövde"
.Cells(1, 5) = "Önem"
İle bitmek
içSatır = 2
olkFld.Items içindeki her olkMsg için
'Yalnızca iletileri dışa aktarın, makbuzları veya randevu isteklerini vb. değil.
OlkMsg.Class = olMail ise
'Dışa aktarmak istediğiniz mesajdaki her alan için bir satır ekleyin
excWks.Cells(intRow, 1) = olkMsg.Subject
excWks.Cells(intRow, 2) = eskiMsg.AlınanZaman
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
excWks.Cells(intRow, 4) = eskiMsg.Body
excWks.Cells(intRow, 5) = olkMsg.Importance
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, lütfen ihtiyaçlarınız için aşağıdaki kodu kontrol edin:
Const MACRO_NAME = "Outlook Klasörlerini Excel'e Aktar"

Alt ExportMain()

ExportToExcel "destination_folder_path\A.xlsx", "your_email_acccouny\folder\subfolder_1"

ExportToExcel "destination_folder_path\B.xlsx", "your_email_acccouny\folder\subfolder_2"

MsgBox "İşlem tamamlandı.", vbInformation + vbOKOnly, MACRO_NAME

End Sub

Sub ExportToExcel(String Olarak strFilename, String Olarak strFolderPath)

Nesne Olarak Dim olkMsg

Nesne Olarak Dim olkFld

Nesne olarak excApp'ı karart

Nesne olarak excWkb'yi karart

Nesne olarak karartma excWks

IntRow'u Tamsayı Olarak Karart

Tamsayı Olarak Dim intVersion

strFilename <> "" ise

strFolderPath <> "" ise

olkFld = OpenOutlookFolder(strFolderPath) olarak ayarlayın

Eğer TypeName(olkFld) <> "Hiçbir şey" O zaman

intVersion = GetOutlookVersion()

set excApp = CreateObject("Excel.Application")

excWkb = excApp.Workbooks.Add() olarak ayarlayın

excWks = excWkb.ActiveSheet olarak ayarlayın

'Excel Sütun Başlıklarını Yazma

excWks ile

.Cells(1, 1) = "Konu"

.Cells(1, 2) = "Gövde"

.Cells(1, 3) = "Alındı"

.Cells(1, 4) = "Kimden: (Ad)"

.Cells(1, 5) = "Gönderen: (Adres)"

.Cells(1, 6) = "Kimden: (Tür)"

.Cells(1, 7) = "Kime: (Ad)"

.Cells(1, 8) = "Kime: (Adres)"

.Cells(1, 9) = "Kime: (Tür)"

.Cells(1, 10) = "CC: (Ad)"

.Cells(1, 11) = "CC: (Adres)"

.Cells(1, 12) = "CC: (Tür)"

.Cells(1, 13) = "BCC: (Ad)"

.Cells(1, 14) = "BCC: (Adres)"

.Cells(1, 15) = "BCC: (Tür)"

.Cells(1, 16) = "Fatura Bilgileri"

.Cells(1, 17) = "Kategoriler"

.Cells(1, 18) = "Önem"

.Cells(1, 19) = "Kilometre"

.Cells(1, 20) = "Hassasiyet"

İle bitmek

içSatır = 2

olkFld.Items içindeki her olkMsg için

'Yalnızca iletileri dışa aktarın, makbuzları veya randevu isteklerini vb. değil.

OlkMsg.Class = olMail ise

'Dışa aktarmak istediğiniz mesajdaki her alan için bir satır ekleyin

excWks.Cells(intRow, 1) = olkMsg.Subject

excWks.Cells(intRow, 2) = eskiMsg.Body

excWks.Cells(intRow, 3) = eskiMsg.AlınanZaman

excWks.Cells(intRow, 4) = olkMsg.SenderName

excWks.Cells(intRow, 5) = GetAddress(olkMsg.Sender, intVersion)

excWks.Cells(intRow, 6) = olkMsg.Sender.Type

excWks.Cells(intRow, 7) = GetRecipientsName(olkMsg, 1, 1, intVersion)

excWks.Cells(intRow, 8) = GetRecipientsName(olkMsg, 1, 2, intVersion)

excWks.Cells(intRow, 9) = GetRecipientsName(olkMsg, 1, 3, intVersion)

excWks.Cells(intRow, 10) = GetRecipientsName(olkMsg, 2, 1, intVersion)

excWks.Cells(intRow, 11) = GetRecipientsName(olkMsg, 2, 2, intVersion)

excWks.Cells(intRow, 12) = GetRecipientsName(olkMsg, 2, 3, intVersion)

excWks.Cells(intRow, 13) = GetRecipientsName(olkMsg, 3, 1, intVersion)

excWks.Cells(intRow, 14) = GetRecipientsName(olkMsg, 3, 2, intVersion)

excWks.Cells(intRow, 15) = GetRecipientsName(olkMsg, 3, 3, intVersion)

excWks.Cells(intRow, 16) = olkMsg.BillingInformation

excWks.Cells(intRow, 17) = olkMsg.Categories

excWks.Cells(intRow, 18) = olkMsg.Importance

excWks.Cells(intRow, 19) = olkMsg.Mileage

excWks.Cells(intRow, 20) = olkMsg.Sensitivity

intRow = intRow + 1

Eğer son

Sonraki

olkMsg = Hiçbir şey olarak ayarla

excWkb.SaveAs strDosyaadı

excWkb.Kapat

başka

MsgBox "'" & strFolderPath & "' klasörü Outlook'ta yok.", vbCritical + vbOKOnly, MACRO_NAME

Eğer son

başka

MsgBox "Klasör yolu boştu.", vbCritical + vbOKOnly, MACRO_NAME

Eğer son

başka

MsgBox "Dosya adı boştu.", vbCritical + vbOKOnly, MACRO_NAME

Eğer son



olkMsg = Hiçbir şey olarak ayarla

olkFld = Hiçbir şey olarak ayarla

excWks = Hiçbir şey olarak ayarla

excWkb = Hiçbir şey olarak ayarla

excApp = Hiçbir şey olarak ayarla

End Sub



Genel İşlev OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder

Varyant Olarak Dim arrFolders

Varyant Olarak Dim varFolder

Dim bolBeyondRoot As Boolean

On Error Resume Next

strFolderPath = "" ise

OpenOutlookFolder'ı Ayarla = Hiçbir Şey

başka

Soldayken Yap(strFolderPath, 1) = "\"

strFolderPath = Sağ(strFolderPath, Len(strFolderPath) - 1)

döngü

arrFolders = Böl(strFolderPath, "\")

arrFolders'daki her varFolder için

Kasa Seç bolBeyondRoot

Durum Yanlış

OpenOutlookFolder = Outlook.Session.Folders(varFolder) olarak ayarlayın

bolBeyondRoot = Doğru

Durum Doğru

OpenOutlookFolder = OpenOutlookFolder.Folders(varFolder) olarak ayarlayın

Select End

Eğer Err.Number <> 0 ise

OpenOutlookFolder'ı Ayarla = Hiçbir Şey

Çıkış

Eğer son

Sonraki

Eğer son

Hata Dönüsünde 0

son İşlevi



Tamsayı Olarak GetOutlookVersion() İşlevi

Varyant Olarak Dim arrVer

arrVer = Böl(Outlook.Version, ".")

GetOutlookVersion = arrVer(0)

son İşlevi



İşlev SMTPEX(Entry As AddressEntry) As String

Outlook.PropertyAccessor Olarak Dim olkPA

On Error Resume Next

olkPA = Entry.PropertyAccessor olarak ayarlayın

SMTPEX = olkPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x5D01001E")

Hata Dönüsünde 0

olkPA = Hiçbir şey olarak ayarla

son İşlevi



İşlev GetAddress(Entry As AddressEntry, intOutlookVersion As Integer) As String

Nesne Olarak Dim olkEnt

On Error Resume Next

Vaka Seç intOutlookVersion

Vaka < 14

Entry.Type = "EX" ise

GetAddress = SMTPEX(Giriş)

başka

GetAddress = Giriş.Adres

Eğer son

Else Kılıf

Entry.AddressEntryUserType = olExchangeUserAddressEntry ise

olkEnt = Entry.GetExchangeUser olarak ayarlayın

GetAddress = olkEnt.PrimarySmtpAddress

başka

GetAddress = Giriş.Adres

Eğer son

Select End

Hata Dönüsünde 0

olkEnt = Hiçbir şey ayarla

son İşlevi



İşlev GetRecipientsName(Mail Öğesi Olarak Öğe, Tamsayı Olarak rcpType, Tamsayı Olarak Ret, Tamsayı Olarak intOutlookVersion) As String

Alıcı Olarak xRcp'yi Karartın

Dize Olarak xNames Dim

xNames = ""

Item.Recipients İçindeki Her xRcp için

xRcp.Type = rcpType ise

Ret = 1 ise

xNames = "" ise

xNames = xRcp.Name

başka

xNames = xNames & "; " & xRcp.Name

Eğer son

ElseIf Ret = 2 O zaman

xNames = "" ise

xNames = GetAddress(xRcp.AddressEntry, intOutlookVersion)

başka

xNames = xNames & "; " & GetAddress(xRcp.AddressEntry, intOutlookVersion)

Eğer son

ElseIf Ret = 3 O zaman

xNames = "" ise

xNames = xRcp.AddressEntry.Type

başka

xNames = xNames & "; " & xRcp.AddressEntry.Type

Eğer son

Eğer son

ElseIf xRcp.Type = rcpType Sonra

Ret = 1 ise

xNames = "" ise

xNames = xRcp.Name

başka

xNames = xNames & "; " & xRcp.Name

Eğer son

ElseIf Ret = 2 O zaman

xNames = "" ise

xNames = GetAddress(xRcp.AddressEntry, intOutlookVersion)

başka

xNames = xNames & "; " & GetAddress(xRcp.AddressEntry, intOutlookVersion)

Eğer son

ElseIf Ret = 3 O zaman

xNames = "" ise

xNames = xRcp.AddressEntry.Type

başka

xNames = xNames & "; " & xRcp.AddressEntry.Type

Eğer son

Eğer son

ElseIf xRcp.Type = rcpType Sonra

Ret = 1 ise

xNames = "" ise

xNames = xRcp.Name

başka

xNames = xNames & "; " & xRcp.Name

Eğer son

ElseIf Ret = 2 O zaman

xNames = "" ise

xNames = GetAddress(xRcp.AddressEntry, intOutlookVersion)

başka

xNames = xNames & "; " & GetAddress(xRcp.AddressEntry, intOutlookVersion)

Eğer son

ElseIf Ret = 3 O zaman

xNames = "" ise

xNames = xRcp.AddressEntry.Type

başka

xNames = xNames & "; " & xRcp.AddressEntry.Type

Eğer son

Eğer son

Eğer son

Sonraki

GetRecipientsName = xNames

son İşlevi




Umarım bu senin için çalışır.
Amanda
Bu yorum sitedeki moderatör tarafından en aza indirildi
ExporttoExcel alt bölümünde gövdeyi ekleyebilirsiniz.

'Excel Sütun Başlıklarını Yazma
excWks ile
.Cells(1, 1) = "Konu"
.Cells(1, 2) = "Alındı"
.Cells(1, 3) = "Gönderen"
.Cells(1, 4) = "Gövde"
İle bitmek
içSatır = 2
olkFld.Items içindeki her olkMsg için
'Yalnızca iletileri dışa aktarın, makbuzları veya randevu isteklerini vb. değil.
OlkMsg.Class = olMail ise
'Dışa aktarmak istediğiniz mesajdaki her alan için bir satır ekleyin
excWks.Cells(intRow, 1) = olkMsg.Subject
excWks.Cells(intRow, 2) = eskiMsg.AlınanZaman
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
excWks.Cells(intRow, 4) = eskiMsg.Body
intRow = intRow + 1
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, Umarım birileri bana burada yardımcı olabilir, neredeyse hiç VB bilgim yok ama bu senaryoyu şu ana kadar benim için çalıştırmayı başardım.

Ancak, gelen kutumun altında toplamda yaklaşık 1500 klasör ve alt klasör var ve konu satırı ve tarihle birlikte gönderdiğim tüm e-posta adreslerini Excel'de ayrı sütunlarda dışa aktarmak için gerçekten basit bir komut dosyası istiyorum.

Günlerce aradım ve birçok farklı site denedim ama bunun dışında çalışacak herhangi bir kod bulamıyorum.


İstediğim şey mümkün mü? Eğer öyleyse, ihtiyacım olan senaryoyu yazmama yardım edecek kadar kibar ve zeki biri var mı?
Sanırım bu kısımla ilgili bir şey var:


Alt ExportMain()

ExportToExcel "destination_folder_path\A.xlsx", "your_email_acccouny\folder\subfolder_1"

ExportToExcel "destination_folder_path\B.xlsx", "your_email_acccouny\folder\subfolder_2"

MsgBox "İşlem tamamlandı.", vbInformation + vbOKOnly, MACRO_NAME

End Sub


Gelişmiş Teşekkürler
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Az önce iyi çalışan bu Makroyu çalıştırdım.
ifadelerinden anladım
excWks.Cells(intRow, 1) = olkMsg.Subject
excWks.Cells(intRow, 2) = eskiMsg.AlınanZaman
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)

olkMsg.* ve GetSMTPAddress(olkMsg, intVersion) Outlook'tan bir şeyler çıkarır.

Postanın gönderildiği Adresi almak için kullanılacak argüman nedir?

Outlook'un Dışa Aktarma Sihirbazı'nı kullanırken, bu adresi dışa aktarmak mümkündür, bu yüzden bunu bu Makro aracılığıyla (bazı değişikliklerle) yapmanın mümkün olacağını varsayıyorum.
Biri yardım edebilir mi?

Saygılarımızla
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu makroyu çalıştırıyorum ancak derleme hatası alıyorum:

Kullanıcı=tanımlı tip tanımlı değil

62. satırda " Public Function OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder "

Yolu zaten şu şekilde belirledim:

ExportToExcel "C:\Users\kudus\Documents\MailExportTest\f1\A.xlsx", "myname@mydomain.com\Inbox\Black Hat Web Yayını"
ExportToExcel "C:\Users\\Documekudus\Documents\MailExportTest\f2\B.xlsx", "myname@mydomain.com\Inbox\CPD\Kaplan Training"

Gerektiğinde Outlook 2016 kullanıyorum
Bu yorum sitedeki moderatör tarafından en aza indirildi
Düzelttim. Visual basic penceresinden Tools Reference - ve "Microsoft Outlook 16.0 Object Library" kutusuna gidin.

Buraya henüz hiç yorum yapılmamış
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır