Przejdź do głównej zawartości

Jak znaleźć folder (pełną ścieżkę folderu) według nazwy folderu w programie Outlook?

Na przykład w okienku nawigacji przez pomyłkę przenosisz folder i upuszczasz go do nieznanego folderu w programie Outlook, chcesz przywrócić ten folder, ale nie możesz go znaleźć od razu. Niestety program Outlook nie obsługuje rozszerzenia Znajdź funkcja taka sama jak w programie Microsoft Word lub Excel. Nie martw się! Możesz zastosować makro VBA, aby rozwiązać ten problem w programie Outlook.

Szybko wyszukuj i otwieraj foldery według nazwy folderu za pomocą niesamowitego narzędzia

Ogólnie rzecz biorąc, możemy wyszukiwać foldery według nazwy folderu z kodem VBA. Większość kodu VBA może przeszukiwać foldery w bieżącej skrzynce pocztowej i otwierać tylko pierwszy znaleziony folder. Teraz dzięki funkcji Idź do Kutools dla programu Outlook możesz łatwo znaleźć foldery według nazwy folderu i otworzyć dowolny ze znalezionych folderów, jak potrzebujesz.



Znajdź folder (pełna ścieżka do folderu) według nazwy folderu za pomocą VBA

Wykonaj poniższe kroki, aby wyszukać foldery według nazw folderów za pomocą VBA w programie Outlook.

1. naciśnij inny + F11 klucze razem, 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: Wyszukaj i otwórz foldery według nazwy folderu w Outlooku

Private m_Folder As MAPIFolder
Private m_Find As String
Private m_Wildcard As Boolean

Private Const SpeedUp As Boolean = True
Private Const StopAtFirstMatch As Boolean = True

Public Sub FindFolder()
Dim sName As String
Dim oFolders As Folders

  Set m_Folder = Nothing
m_Find = ""
m_Wildcard = False

  sName = InputBox("Find:", "Search folder")
If Len(Trim(sName)) = 0 Then Exit Sub
m_Find = sName

  m_Find = LCase(m_Find)
m_Find = Replace(m_Find, "%", "*")
m_Wildcard = (InStr(m_Find, "*"))

  Set oFolders = Application.Session.Folders
LoopFolders oFolders

  If Not m_Folder Is Nothing Then
If MsgBox("Activate folder: " & vbCrLf & m_Folder.FolderPath, vbQuestion Or vbYesNo) = vbYes Then
Set Application.ActiveExplorer.CurrentFolder = m_Folder
End If
Else
MsgBox "Not found", vbInformation
End If
End Sub

Private Sub LoopFolders(Folders As Outlook.Folders)
Dim oFolder As MAPIFolder
Dim bFound As Boolean

If SpeedUp = False Then DoEvents

  For Each oFolder In Folders
If m_Wildcard Then
bFound = (LCase(oFolder.Name) Like m_Find)
Else
bFound = (LCase(oFolder.Name) = m_Find)
End If

    If bFound Then
If StopAtFirstMatch = False Then
If MsgBox("Found: " & vbCrLf & oFolder.FolderPath & vbCrLf & vbCrLf & "Continue?", vbQuestion Or vbYesNo) = vbYes Then
bFound = False
End If
End If
End If
If bFound Then
Set m_Folder = oFolder
Exit For
Else
LoopFolders oFolder.Folders
If Not m_Folder Is Nothing Then Exit For
End If
Next
End Sub

3. naciśnij F5 lub kliknij run przycisk, aby uruchomić ten VBA.

4. W wyskakującym oknie dialogowym Wyszukaj folder wpisz określoną nazwę folderu, według którego będziesz wyszukiwać, i kliknij OK przycisk. Zobacz zrzut ekranu:

Note: Ten VBA obsługuje symbol wieloznaczny gwiazdki. Na przykład możesz wpisać tes * aby znaleźć wszystkie foldery, których nazwa zaczyna się od tes.

5. Teraz pojawia się okno dialogowe i pokazuje ścieżkę do znalezionego folderu. Jeśli chcesz otworzyć znaleziony folder, kliknij Tak przycisk.

A teraz znaleziony folder otwiera się w okienku nawigacji, jak pokazano na zrzucie ekranu:

Note: Jeśli istnieje więcej niż jeden folder o określonej nazwie, ten VBA może znaleźć i otworzyć tylko jeden folder.


Przeszukuj folder według nazwy folderu za pomocą niesamowitego narzędzia

Jeśli masz zainstalowany Kutools dla programu Outlook, możesz zastosować jego funkcję Idź do, aby szybko znaleźć wszystkie foldery według określonej nazwy folderu i łatwo otworzyć wszystkie znalezione foldery.

Kutools dla programu Outlook: Doładuj program Outlook za pomocą ponad 100 niezbędnych narzędzi. Przetestuj go ZA DARMO przez 60 dni, bez żadnych zobowiązań!   Czytaj więcej...   Pobierz teraz!

1. Kliknij Kutools Plus > przejdź do aby włączyć tę funkcję.

2. W oknie dialogowym Idź do wpisz określoną nazwę folderu w Szukaj wybierz folder w wynikach wyszukiwania i kliknij Ok przycisk.

Teraz określony folder o określonej nazwie folderu zostanie znaleziony i natychmiast otwarty.


Podobne artykuły:


Najlepsze narzędzia biurowe

Kutools dla programu Outlook - Ponad 100 zaawansowanych funkcji, które usprawnią Twoje perspektywy

🤖 Asystent poczty AI: Natychmiastowe profesjonalne e-maile z magią AI — genialne odpowiedzi jednym kliknięciem, doskonały ton, biegła znajomość wielu języków. Zmień e-mailing bez wysiłku! ...

📧 Automatyzacja poczty e-mail: Poza biurem (dostępne dla POP i IMAP)  /  Zaplanuj wysyłanie wiadomości e-mail  /  Automatyczne CC/BCC według reguł podczas wysyłania wiadomości e-mail  /  Automatyczne przewijanie (Zasady zaawansowane)   /  Automatyczne dodawanie powitania   /  Automatycznie dziel wiadomości e-mail od wielu odbiorców na pojedyncze wiadomości ...

📨 Zarządzanie e-mail: Łatwe przywoływanie e-maili  /  Blokuj oszukańcze wiadomości e-mail według tematów i innych  /  Usuń zduplikowane wiadomości e-mail  /  Wiecej opcji  /  Konsoliduj foldery ...

📁 Załączniki ProZapisz zbiorczo  /  Odłącz partię  /  Kompresuj wsadowo  /  Automatyczne zapisywanie   /  Automatyczne odłączanie  /  Automatyczna kompresja ...

🌟 Magia interfejsu: 😊Więcej ładnych i fajnych emotikonów   /  Zwiększ produktywność programu Outlook dzięki widokom na kartach  /  Zminimalizuj program Outlook zamiast go zamykać ...

>> Cuda jednym kliknięciem: Odpowiedz wszystkim, dodając przychodzące załączniki  /   E-maile chroniące przed phishingiem  /  🕘Pokaż strefę czasową nadawcy ...

👩🏼‍🤝‍👩🏻 Kontakty i kalendarz: Grupowe dodawanie kontaktów z wybranych e-maili  /  Podziel grupę kontaktów na pojedyncze grupy  /  Usuń przypomnienia o urodzinach ...

O Cechy 100 Poczekaj na eksplorację! Kliknij tutaj, aby dowiedzieć się więcej.

 

 

Comments (10)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you for this great macro. I have used it extensively over the past 2 years. My employer switched from Office 16 to Office 365 and since then, this macro is VERY slow. Is there any way to optimize it for Office 365?
Thanks!
This comment was minimized by the moderator on the site
This macro has really helped me is incredible, thank you!!!
Is it possible to to go to the next occurrence, so instead of just Yes/No have something as Yes/Next/No ?
Thank you
This comment was minimized by the moderator on the site
Private m_Folder As MAPIFolder
Private m_Find As String
Private m_Wildcard As Boolean

Private Const SpeedUp As Boolean = True
'Private Const StopAtFirstMatch As Boolean = True
Private StopAtFirstMatch As Boolean

Public Sub FindFolder()
Dim sName As String
Dim oFolders As Folders

Set m_Folder = Nothing
m_Find = ""
m_Wildcard = False

sName = InputBox("Find:", "Search folder")
If Len(Trim(sName)) = 0 Then Exit Sub

'm_Find = sName
' Added "*"... for any given string in the folder name
m_Find = "*" & sName & "*"

m_Find = LCase(m_Find)
m_Find = Replace(m_Find, "%", "*")
m_Wildcard = (InStr(m_Find, "*"))

' Set oFolders = Application.Session.Folders
Set oFolders = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders

LoopFolders oFolders

If Not m_Folder Is Nothing Then
' Removed - If MsgBox("Activate folder: " & vbCrLf & m_Folder.FolderPath, vbQuestion Or vbYesNo) = vbYes Then
Set Application.ActiveExplorer.CurrentFolder = m_Folder
Else
MsgBox "Search End...", vbInformation
End If
End Sub

Private Sub LoopFolders(Folders As Outlook.Folders)
Dim oFolder As MAPIFolder
Dim bFound As Boolean

If SpeedUp = False Then DoEvents

For Each oFolder In Folders
If m_Wildcard Then
bFound = (LCase(oFolder.Name) Like m_Find)
Else
bFound = (LCase(oFolder.Name) = m_Find)
End If


If bFound Then
If StopAtFirstMatch = False Then
Set Application.ActiveExplorer.CurrentFolder = oFolder

If MsgBox("Found: " & vbCrLf & oFolder.FolderPath & vbCrLf & vbCrLf & "Search for next?", vbQuestion Or vbYesNo) = vbYes Then
bFound = False
End If
Else
MsgBox ("Not found")
End If
End If
If bFound Then
Set m_Folder = oFolder
Exit For
Else
LoopFolders oFolder.Folders
If Not m_Folder Is Nothing Then Exit For
End If
Next
End Sub
This comment was minimized by the moderator on the site
Hi, if i try to copy and past the macro yes/next/no, I only received the message "Search End".
Could you take a look? I would really appreciate it. Thanks
This comment was minimized by the moderator on the site
Hi, if i try to copy and past the macro yes/next/no, I only received the message "Search End".Could you take a look? I would really appreciate it. Thanks
This comment was minimized by the moderator on the site
Wow this is exactly. I really appreciate it and you did it so fast.Thanks
This comment was minimized by the moderator on the site
Hello,

Thank you for this macro. It works great!


Is there a way to make the macro always search as wildcards? I would be easier to just type a keyword without adding the asterisks every time.
This comment was minimized by the moderator on the site
Replace Line 18 with

m_Find = "*" & sName & "*"
This comment was minimized by the moderator on the site
Replace Line 18 with
m_Find = "*" & sName & "*"
This comment was minimized by the moderator on the site
Hello.

Wow - this is an amazing function, which will make my daily usage of Outlook tons faster.
Thank you so much for publishing!!

A tip for those interested:
If you want to search only INBOX-folders, without public folders etc.
This made it a lot faster for me because the public folder are remote, so the search is quite slow.
And also I'm not interested in those results.


Replace line 24 with:

Set oFolders = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations