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

Jak wyeksportować wiadomości e-mail z wielu folderów / podfolderów, aby osiągnąć sukces w Outlooku?

Podczas eksportowania folderu za pomocą kreatora importu i eksportu w programie Outlook nie obsługuje on formatu Włączając podfoldery opcja, jeśli eksportujesz folder do pliku CSV. Jednak wyeksportowanie każdego folderu do pliku CSV, a następnie ręczne przekonwertowanie go do skoroszytu programu Excel będzie dość czasochłonne i żmudne. W tym artykule wprowadzimy VBA, aby szybko i łatwo eksportować wiele folderów i podfolderów do skoroszytów programu Excel.

Eksportuj wiele wiadomości e-mail z wielu folderów / podfolderów do programu Excel za pomocą VBA

Karta Office - Włącz edycję i przeglądanie w kartach w pakiecie Office i znacznie ułatw pracę ...
Kutools dla programu Outlook - wprowadza 100 zaawansowanych funkcji do programu Microsoft Outlook
  • Auto CC / BCC według zasad podczas wysyłania wiadomości e-mail; Auto Forward Wiele e-maili według reguł; Automatyczna odpowiedź bez serwera Exchange i więcej funkcji automatycznych ...
  • Ostrzeżenie BCC - pokaż wiadomość, gdy próbujesz odpowiedzieć wszystkim, jeśli Twój adres e-mail znajduje się na liście BCC; Przypomnij o braku załącznikówi więcej funkcji przypominających ...
  • Odpowiedz (wszystkie) ze wszystkimi załącznikami w rozmowie mailowej; Odpowiadaj na wiele e-maili jednocześnie; Automatyczne dodawanie powitania kiedy odpowiedz; Automatyczne dodawanie daty i godziny do tematu ...
  • Narzędzia załączników: Automatyczne odłączanie, kompresowanie wszystkiego, zmiana nazwy wszystkiego, automatyczne zapisywanie wszystkiego ... Szybki raport, Policz wybrane wiadomości, Usuń zduplikowane wiadomości e-mail i kontakty ...
  • Ponad 100 zaawansowanych funkcji będzie rozwiąż większość swoich problemów w Outlook 2021 - 2010 lub Office 365. Pełne funkcje 60-dniowy bezpłatny okres próbny.

strzałka niebieski prawy bąbelek Eksportuj wiele wiadomości e-mail z wielu folderów / podfolderów do programu Excel za pomocą VBA

Wykonaj poniższe kroki, aby wyeksportować wiadomości e-mail z wielu folderów lub podfolderów do skoroszytów programu Excel za pomocą VBA w programie Outlook.

1. naciśnij inny + F11 klawisze, aby otworzyć okno Microsoft Visual Basic for Applications.

2. kliknij wstawka > Moduł, a następnie wklej poniższy kod VBA do nowego okna modułu.

VBA: Eksportuj wiadomości e-mail z wielu folderów i podfolderów do programu Excel

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. Dostosuj powyższy kod VBA według potrzeb.

(1) Wymień ścieżka_folderu_docelowego w powyższym kodzie ze ścieżką do folderu docelowego, w którym zapiszesz wyeksportowane skoroszyty, takie jak C: \ Users \ DT168 \ Documents \ TEST.
(2) Zastąp your_email_accouny \ folder \ subfolder_1 i your_email_accouny \ folder \ subfolder_2 w powyższym kodzie ścieżkami folderów podfolderów w programie Outlook, takimi jak Kelly @extendoffice.com \ Inbox \ A i Kelly @extendoffice.com \ Inbox \ B

4. wciśnij F5 lub kliknij run przycisk, aby uruchomić ten VBA. A następnie kliknij OK w wyskakującym oknie dialogowym Eksportuj foldery programu Outlook do programu Excel. Zobacz zrzut ekranu:

A teraz wiadomości e-mail ze wszystkich określonych podfolderów lub folderów w powyższym kodzie VBA są eksportowane i zapisywane w skoroszytach programu Excel.


strzałka niebieski prawy bąbelekPowiązane artykuły


Kutools dla programu Outlook - wprowadza 100 zaawansowanych funkcji do programu Outlook i znacznie ułatwia pracę!

  • Auto CC / BCC według zasad podczas wysyłania wiadomości e-mail; Auto Forward Wiele e-maili na zamówienie; Automatyczna odpowiedź bez serwera Exchange i więcej funkcji automatycznych ...
  • Ostrzeżenie BCC - pokaż wiadomość, gdy spróbujesz odpowiedzieć wszystkim jeśli Twój adres e-mail znajduje się na liście BCC; Przypomnij o braku załącznikówi więcej funkcji przypominających ...
  • Odpowiedz (wszystkie) ze wszystkimi załącznikami w rozmowie pocztowej; Odpowiedz na wiele e-maili w sekundy; Automatyczne dodawanie powitania kiedy odpowiedz; Dodaj datę do tematu ...
  • Narzędzia załączników: Zarządzaj wszystkimi załącznikami we wszystkich wiadomościach e-mail, Automatyczne odłączanie, Kompresuj wszystko, Zmień nazwę wszystkiego, Zapisz wszystko ... Szybki raport, Policz wybrane wiadomości...
  • Potężne wiadomości-śmieci na zamówienie; Usuń zduplikowane wiadomości e-mail i kontakty... Umożliwiają inteligentniejsze, szybsze i lepsze działanie w programie Outlook.
strzał Kutools Outlook Kutools tab 1180x121
shot Kutools Outlook Kutools Plus Tab 1180x121
 
Sortuj komentarze według
Komentarze (10)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak sprawić, by to automatycznie przechodziło w podfoldery?
Ten komentarz został zminimalizowany przez moderatora na stronie
witam kochanie, wszystko działa dobrze, wielkie dzięki, ale ciało nie jest eksportowane, jak mogę wyeksportować również treść wiadomości e-mail, plik programu Excel ma właśnie (temat, odebrane i nadawca), jeśli możesz mnie zaktualizować, rozwiąże ogromną sprawę w mojej firmie jeszcze raz wielkie dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Montaser,
Skrypt VBA działa w oparciu o funkcję eksportu programu Outlook, która nie obsługuje eksportowania treści wiadomości podczas zbiorczego eksportowania wiadomości e-mail z folderu poczty. Dlatego ten skrypt VBA nie może również eksportować treści wiadomości.
Ten komentarz został zminimalizowany przez moderatora na stronie
działa to świetnie, ale czy istnieje sposób na dodanie informacji nie tylko dla 4 powyższych pól, ale także dla całego eksportu Outlooka do PST? Treść tematu Od: (Nazwa) Od: (Adres) Od: (Typ) Do: (Nazwa) Do: (Adres) Do: (Typ) CC: (Nazwa) CC: (Adres) CC: (Typ) BCC: ( Nazwa) BCC: (Adres) BCC: (Typ) Informacje rozliczeniowe Kategorie Ważność Wrażliwość na przebieg

Próbowałem dodać "Ważność" i działa, ale byłbym wdzięczny, gdyby ktoś mógł podać kod dla innych pól. Dziękuję Ci!!
Z excWks
.Komórki(1, 1) = "Temat"
.Cells(1, 2) = "Otrzymane"
.Komórki(1, 3) = "Nadawca"
.Cells(1, 4) = "Ciało"
.Cells(1, 5) = "Ważność"
Kończyć z
w wierszu = 2
Dla każdego olkMsg w olkFld.Items
„Eksportuj tylko wiadomości, a nie rachunki, prośby o spotkanie itp.
Jeśli olkMsg.Class = olMail Wtedy
'Dodaj wiersz dla każdego pola w wiadomości, którą chcesz wyeksportować
excWks.Cells(intRow, 1) = olkMsg.Temat
excWks.Cells(intRow, 2) = olkMsg.ReceivedTime
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
excWks.Cells(intRow, 4) = olkMsg.Body
excWks.Cells(intRow, 5) = olkMsg.Ważność
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, sprawdź poniższy kod do swoich potrzeb:
Const MACRO_NAME = "Eksportuj foldery programu Outlook do programu Excel"

Sub ExportMain()

ExportToExcel "ścieżka_folderu_docelowego\A.xlsx", "konto_twojego_e-maila\folder\podfolder_1"

ExportToExcel "Ścieżka_folderu_docelowego\B.xlsx", "Twoje_konto_e-mail\folder\podfolder_2"

MsgBox "Proces zakończony.", vbInformation + vbOKOnly, MACRO_NAME

End Sub

Sub ExportToExcel(strFilename As String, strFolderPath As String)

Dim olkMsg jako obiekt

Dim olkFld jako obiekt

Dim excApp jako obiekt

Dim excWkb jako obiekt

Dim excWks jako obiekt

Dim intRow jako liczba całkowita

Dim intVersion As Integer

Jeśli strFilename <> "" Wtedy

Jeśli strFolderPath <> "" Wtedy

Ustaw olkFld = OpenOutlookFolder(strFolderPath)

Jeśli TypeName(olkFld) <> „Nic” Wtedy

wersja int = wersja GetOutlook()

Ustaw excApp = CreateObject("Excel.Application")

Ustaw excWkb = excApp.Workbooks.Add()

Ustaw excWks = excWkb.ActiveSheet

'Zapisz nagłówki kolumn Excel'

Z excWks

.Komórki(1, 1) = "Temat"

.Cells(1, 2) = "Ciało"

.Cells(1, 3) = "Otrzymane"

.Cells(1, 4) = "Od: (Nazwa)"

.Cells(1, 5) = "Od: (Adres)"

.Cells(1, 6) = "Od: (Typ)"

.Cells(1, 7) = "Do: (Nazwa)"

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

.Cells(1, 9) = "Do: (Typ)"

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

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

.Cells(1, 12) = "CC: (Typ)"

.Cells(1, 13) = "UDW: (Nazwa)"

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

.Cells(1, 15) = "UDW: (Typ)"

.Cells(1, 16) = "Informacje rozliczeniowe"

.Cells(1, 17) = "Kategorie"

.Cells(1, 18) = "Ważność"

.Cells (1, 19) = "Przebieg"

.Cells(1, 20) = "Czułość"

Kończyć z

w wierszu = 2

Dla każdego olkMsg w olkFld.Items

„Eksportuj tylko wiadomości, a nie rachunki, prośby o spotkanie itp.

Jeśli olkMsg.Class = olMail Wtedy

'Dodaj wiersz dla każdego pola w wiadomości, którą chcesz wyeksportować

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

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

excWks.Cells(intRow, 3) = olkMsg.ReceivedTime

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

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.Informacje rozliczeniowe

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

excWks.Cells(intRow, 18) = olkMsg.Ważność

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

excWks.Cells(intRow, 20) = olkMsg.Czułość

wiersz wiersz = wiersz wiersz + 1

End If

Dalej

Ustaw olkMsg = Nic

excWkb.SaveAs strNazwaPliku

excWkb.Zamknij

Więcej

MsgBox "Folder '" & strFolderPath & "' nie istnieje w Outlooku.", vbCritical + vbOKOnly, MACRO_NAME

End If

Więcej

MsgBox "Ścieżka folderu była pusta.", vbCritical + vbOKOnly, MACRO_NAME

End If

Więcej

MsgBox "Nazwa pliku była pusta.", vbCritical + vbOKOnly, MACRO_NAME

End If



Ustaw olkMsg = Nic

Ustaw olkFld = Nic

Ustaw excWks = Nic

Ustaw excWkb = Nic

Ustaw excApp = Nic

End Sub



Funkcja publiczna OpenOutlookFolder(strFolderPath As String) jako Outlook.MAPIFolder

Dim arrFolders jako wariant

Dim varFolder jako wariant

Dim bolBeyondRoot As Boolean

On Error Resume Next

Jeśli strFolderPath = "" Wtedy

Ustaw OpenOutlookFolder = Nic

Więcej

Dopóki w lewo(strFolderPath, 1) = "\"

strFolderPath = Prawo(strFolderPath, Len(strFolderPath) - 1)

Pętla

arrFolders = Split(strFolderPath, "\")

Dla każdego varFolder In arrFolders

Wybierz przypadek bolBeyondRoot

Przypadek fałszywy

Ustaw OpenOutlookFolder = Outlook.Session.Folders(varFolder)

bolBeyondRoot = Prawda

Sprawa prawda

Ustaw OpenOutlookFolder = OpenOutlookFolder.Folders(varFolder)

End Select

Jeśli Err.Number <> 0 Wtedy

Ustaw OpenOutlookFolder = Nic

Wyjdź dla

End If

Dalej

End If

Przy błędzie GoTo 0

End Function



Funkcja GetOutlookVersion() jako liczba całkowita

Dim arrVer jako wariant

arrVer = Split(Outlook.Wersja, ".")

GetOutlookVersion = zwr(0)

End Function



Funkcja SMTPEX(Entry As AddressEntry) As String

Dim olkPA jako Outlook.PropertyAccessor

On Error Resume Next

Ustaw olkPA = Entry.PropertyAccessor

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

Przy błędzie GoTo 0

Ustaw olkPA = Nic

End Function



Funkcja GetAddress(Entry As AddressEntry, intOutlookVersion As Integer) As String

Dim olkEnt jako obiekt

On Error Resume Next

Wybierz sprawę w wersji programu Outlook

Wielkość liter < 14

Jeśli Entry.Type = „EX” Wtedy

Uzyskaj adres = SMTPEX (wpis)

Więcej

GetAddress = Wpis.Adres

End If

Case Else

Jeśli Entry.AddressEntryUserType = olExchangeUserAddressEntry Then

Ustaw olkEnt = Entry.GetExchangeUser

GetAddress = olkEnt.PrimarySmtpAddress

Więcej

GetAddress = Wpis.Adres

End If

End Select

Przy błędzie GoTo 0

Ustaw olkEnt = Nic

End Function



Funkcja GetRecipientsName(Item As MailItem, rcpType As Integer, Ret As Integer, intOutlookVersion As Integer) As String

Dim xRcp jako odbiorca

Dim xNames jako ciąg

xNazwy = ""

Dla każdego xRcp w Item.Recipients

Jeśli xRcp.Type = rcpType Wtedy

Jeśli Ret = 1 Wtedy

Jeśli xNames = „” Wtedy

xNazwy = xRcp.Nazwa

Więcej

xNames = xNames & "; " & xRcp.Name

End If

ElseIf Ret = 2 Wtedy

Jeśli xNames = „” Wtedy

xNames = GetAddress(xRcp.AddressEntry, intOutlookVersion)

Więcej

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

End If

ElseIf Ret = 3 Wtedy

Jeśli xNames = „” Wtedy

xNames = xRcp.AddressEntry.Type

Więcej

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

End If

End If

ElseIf xRcp.Type = rcpType Wtedy

Jeśli Ret = 1 Wtedy

Jeśli xNames = „” Wtedy

xNazwy = xRcp.Nazwa

Więcej

xNames = xNames & "; " & xRcp.Name

End If

ElseIf Ret = 2 Wtedy

Jeśli xNames = „” Wtedy

xNames = GetAddress(xRcp.AddressEntry, intOutlookVersion)

Więcej

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

End If

ElseIf Ret = 3 Wtedy

Jeśli xNames = „” Wtedy

xNames = xRcp.AddressEntry.Type

Więcej

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

End If

End If

ElseIf xRcp.Type = rcpType Wtedy

Jeśli Ret = 1 Wtedy

Jeśli xNames = „” Wtedy

xNazwy = xRcp.Nazwa

Więcej

xNames = xNames & "; " & xRcp.Name

End If

ElseIf Ret = 2 Wtedy

Jeśli xNames = „” Wtedy

xNames = GetAddress(xRcp.AddressEntry, intOutlookVersion)

Więcej

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

End If

ElseIf Ret = 3 Wtedy

Jeśli xNames = „” Wtedy

xNames = xRcp.AddressEntry.Type

Więcej

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

End If

End If

End If

Dalej

GetRecipientsName = xNazwy

End Function




Mam nadzieję, że to działa dla ciebie.
Amanda
Ten komentarz został zminimalizowany przez moderatora na stronie
W sub ExporttoExcel możesz dodać body

'Zapisz nagłówki kolumn Excel'
Z excWks
.Komórki(1, 1) = "Temat"
.Cells(1, 2) = "Otrzymane"
.Komórki(1, 3) = "Nadawca"
.Cells(1, 4) = "Ciało"
Kończyć z
w wierszu = 2
Dla każdego olkMsg w olkFld.Items
„Eksportuj tylko wiadomości, a nie rachunki, prośby o spotkanie itp.
Jeśli olkMsg.Class = olMail Wtedy
'Dodaj wiersz dla każdego pola w wiadomości, którą chcesz wyeksportować
excWks.Cells(intRow, 1) = olkMsg.Temat
excWks.Cells(intRow, 2) = olkMsg.ReceivedTime
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
excWks.Cells(intRow, 4) = olkMsg.Body
wiersz wiersz = wiersz wiersz + 1
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, mam nadzieję, że ktoś może mi tutaj pomóc, praktycznie nie mam wiedzy o VB, ale do tej pory udało mi się uruchomić ten skrypt.

Jednak w sumie mam około 1500 folderów i podfolderów w mojej skrzynce odbiorczej i naprawdę chciałbym prosty skrypt, który wyeksportuje cały adres e-mail, na który wysłałem, z tematem i datą w osobnych kolumnach w Excelu.

Szukałem przez wiele dni i wypróbowałem wiele różnych witryn, ale nie mogę uruchomić żadnego kodu poza tym.


Czy to, o co proszę, jest w ogóle możliwe? Jeśli tak, czy jest ktoś na tyle uprzejmy i sprytny, by pomóc mi w przygotowaniu scenariusza, którego potrzebuję?
Przypuszczam, że ma to coś wspólnego z tą częścią:


Sub ExportMain()

ExportToExcel "ścieżka_folderu_docelowego\A.xlsx", "konto_twojego_e-maila\folder\podfolder_1"

ExportToExcel "Ścieżka_folderu_docelowego\B.xlsx", "Twoje_konto_e-mail\folder\podfolder_2"

MsgBox "Proces zakończony.", vbInformation + vbOKOnly, MACRO_NAME

End Sub


Podziękowania w zaawansowanych
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
Właśnie uruchomiłem to makro, które działa dobrze.
Rozumiem, że w wyrażeniach
excWks.Cells(intRow, 1) = olkMsg.Temat
excWks.Cells(intRow, 2) = olkMsg.ReceivedTime
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)

olkMsg.* i GetSMTPAddress(olkMsg, intVersion) wyodrębniają rzeczy z Outlooka.

Jaki jest argument, którego należy użyć, aby uzyskać adres, na który wysłano pocztę?

Korzystając z Kreatora eksportu programu Outlook, można wyeksportować ten adres, więc zakładam, że byłoby to możliwe za pomocą tego makra (z pewną modyfikacją).
Czy ktoś może pomóc?

pozdrowienia
Ten komentarz został zminimalizowany przez moderatora na stronie
Uruchamiam to makro, ale ciągle pojawia się błąd kompilacji:

Użytkownik=zdefiniowany typ niezdefiniowany

W wierszu 62 " Funkcja publiczna OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder "

Określiłem już ścieżkę w następujący sposób:

ExportToExcel "C:\Users\kudus\Documents\MailExportTest\f1\A.xlsx", "mojanazwa@moja_domena.com\Skrzynka odbiorcza\Black Hat Webcast"
ExportToExcel "C:\Users\\Documekudus\Documents\MailExportTest\f2\B.xlsx", "mojanazwa@mojadomena.com\Skrzynka odbiorcza\CPD\Kaplan Training"

W razie potrzeby korzystam z Outlooka 2016
Ten komentarz został zminimalizowany przez moderatora na stronie
Naprawiłem to. W oknie Visual Basic przejdź do Narzędzia Dokumentacja — i pole „Microsoft Outlook 16.0 Object Library”

Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL