Note: The other languages of the website are Google-translated. Back to English
ログイン  \/ 
x
or
x
今すぐ登録  \/ 
x

or

Outlookでフォルダ名でフォルダ(フルフォルダパス)を見つける方法は?

たとえば、ナビゲーションペインで、Outlookで誤ってフォルダを移動し、不明なフォルダにドロップした場合、このフォルダを復元したいのですが、すぐに見つけることができません。 残念ながら、Outlookはをサポートしていません 見つけます MicrosoftWordやExcelと同じ機能。 心配しないでください! VBAマクロを適用して、Outlookでこの問題を解決できます。

すばらしいツールを使用して、フォルダ名でフォルダをすばやく検索して開きます

一般に、VBAコードを使用してフォルダー名でフォルダーを検索できます。 ほとんどのVBAコードは、現在のメールボックス内のフォルダーを検索し、最初に見つかったフォルダーのみを開くことができます。 Kutools for Outlookの[移動]機能を使用すると、フォルダー名でフォルダーを簡単に検索し、必要に応じて、見つかったフォルダーを任意に開くことができます。 クリックして60日間の無料トライアルを無制限に!


VBAを使用してフォルダー名でフォルダー(完全なフォルダーパス)を検索する

OutlookでVBAを使用してフォルダー名でフォルダーを検索するには、以下の手順に従ってください。

1。 押す 他の + F11 キーを一緒に押して、Microsoft Visual Basic forApplicationsウィンドウを開きます。

2に設定します。 OK をクリックします。 インセット > モジュール、次にVBAコードの下を新しいモジュールウィンドウに貼り付けます。

VBA:Outlookでフォルダー名でフォルダーを検索して開く

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。 押す F5 キーを押すか、 ラン このVBAを実行するためのボタン。

4。 表示される[フォルダの検索]ダイアログボックスで、検索する指定のフォルダ名を入力し、[ OK ボタン。 スクリーンショットを参照してください:

注意:このVBAはアスタリスクワイルドカードをサポートしています。 たとえば、次のように入力できます tes * 名前がで始まるすべてのフォルダを見つける TES.

5。 ダイアログボックスが表示され、見つかったフォルダのフォルダパスが表示されます。 見つかったフォルダを開く必要がある場合は、をクリックしてください あり ボタン。

そして今、以下のスクリーンショットが示すように、見つかったフォルダがナビゲーションペインで開いています。

注意:指定した名前で名前が付けられたフォルダーが複数ある場合、このVBAはXNUMXつのフォルダーのみを検索して開くことができます。


素晴らしいツールでフォルダ名でフォルダを検索

Kutools for Outlookがインストールされている場合は、その移動機能を適用して、特定のフォルダー名ですべてのフォルダーをすばやく検索し、見つかったフォルダーを簡単に開くことができます。

Outlook用Kutools:Outlook用の便利なツールを100以上追加し、60日以内に制限なしで無料で試すことができます。 続きを読む       今すぐ無料トライアル

1に設定します。 OK をクリックします。 クツールズプラス > へ行きます この機能を有効にします。

2。 [移動]ダイアログで、指定したフォルダ名を サイト内検索 ボックスで、検索結果からフォルダを選択し、をクリックします。 Ok ボタン。

これで、特定のフォルダ名を持つ指定されたフォルダが見つかり、すぐに開かれます。


関連記事:


Kutools for Outlook-100の高度な機能をOutlookにもたらし、作​​業をはるかに簡単にします!

  • 自動CC / BCC メール送信時のルールによる。 自動転送 カスタムによる複数の電子メール。 自動返信 Exchangeサーバーなし、およびより多くの自動機能...
  • BCC警告 -全員に返信しようとするとメッセージを表示する メールアドレスがBCCリストにある場合; 添付ファイルがない場合に通知する、その他の機能を思い出させる...
  • メール会話のすべての添付ファイルで(すべて)返信; 多くのメールに返信する すぐに; あいさつを自動追加 返信するとき; 件名に日付を追加...
  • 添付ファイルツール:すべてのメールのすべての添付ファイルを管理し、 自動デタッチ, すべて圧縮、すべての名前を変更、すべて保存...クイックレポート、 選択したメールを数える...
  • 強力な迷惑メール 習慣による; 重複するメールと連絡先を削除する... Outlookでよりスマートに、より速く、より良くすることができます。
ショットkutoolsの見通しkutoolsタブ1180x121
ショットkutoolsの見通しkutoolsプラスタブ1180x121
 
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    angasomangas@gmail.com · 7 months ago
    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
    • To post as a guest, your comment is unpublished.
      GanKapil · 7 months ago
      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




      • To post as a guest, your comment is unpublished.
        angasomangas@gmail.com · 7 months ago
        Wow this is exactly. I really appreciate it and you did it so fast.Thanks
  • To post as a guest, your comment is unpublished.
    Gabe Btg · 1 years ago
    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.
    • To post as a guest, your comment is unpublished.
      GanKapil · 1 years ago

      Replace Line 18 with

      m_Find = "*" & sName & "*"
    • To post as a guest, your comment is unpublished.
      Gan Kapilavayi · 1 years ago
      Replace Line 18 with
      m_Find = "*" & sName & "*"
  • To post as a guest, your comment is unpublished.
    RapF · 1 years ago
    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