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

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
 
コメントを並べ替える
コメント (9)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは。

うわー-これは素晴らしい機能で、Outlookの毎日の使用を大幅に高速化します。
公開ありがとうございます!!

興味のある方へのヒント:
パブリックフォルダなどを使用せずに、INBOXフォルダのみを検索する場合。
パブリックフォルダがリモートであるため、検索が非常に遅くなるため、これにより、処理が大幅に高速化されました。
また、私はそれらの結果には興味がありません。


24行目を次のように置き換えます。

oFolders = GetNamespace( "MAPI")。GetDefaultFolder(olFolderInbox).Foldersを設定します
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

このマクロをありがとう。 それは素晴らしい働きをします!


マクロを常にワイルドカードとして検索する方法はありますか? 毎回アスタリスクを追加せずに、キーワードを入力する方が簡単です。
このコメントは、サイトのモデレーターによって最小化されました
18行目を次のように置き換えます
m_Find = "*"&sName& "*"
このコメントは、サイトのモデレーターによって最小化されました
18行目を次のように置き換えます

m_Find = "*"&sName& "*"
このコメントは、サイトのモデレーターによって最小化されました
このマクロは本当に私が信じられないほど助けてくれました、ありがとう!!!
次の出来事に行くことは可能ですか、それで単にはい/いいえの代わりにはい/次/いいえのようなものを持っていますか?
ありがとうございました
このコメントは、サイトのモデレーターによって最小化されました
MAPIFolderとしてのプライベートm_Folder
プライベートm_FindAsString
ブール値としてのプライベートm_Wildcard

Private Const SpeedUp As Boolean = True
'Private Const StopAtFirstMatch As Boolean = True
ブール値としてのプライベートStopAtFirstMatch

Public Sub FindFolder()
Dim sName As String
フォルダとしてのDimoFolders

m_Folder=Nothingを設定します
m_Find = ""
m_Wildcard = False

sName = InputBox( "検索:"、 "検索フォルダー")
Len(Trim(sName))= 0の場合、Subを終了します

'm_Find = sName
'フォルダ名の任意の文字列に「*」...を追加しました
m_Find = "*"&sName& "*"

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

'oFolders=Application.Session.Foldersを設定します
oFolders = GetNamespace( "MAPI")。GetDefaultFolder(olFolderInbox).Foldersを設定します

LoopF​​oldersoFolders

m_Folderがない場合は何もありません
'削除-IfMsgBox( "Activate folder:"&vbCrLf&m_Folder.FolderPath、vbQuestion Or vbYesNo)= vbYes Then
Application.ActiveExplorer.CurrentFolder=m_Folderを設定します

MsgBox "検索終了..."、vbInformation
終了する場合
End Subの

Private Sub LoopF​​olders(Folders As Outlook.Folders)
MAPIFolderとしてのDimoFolder
Dim bFound As Boolean

SpeedUp = Falseの場合、DoEvents

フォルダ内の各oFolderについて
m_Wildcardの場合
bFound =(LCase(oFolder.Name)Like m_Find)

bFound =(LCase(oFolder.Name)= m_Find)
終了する場合


bFoundThenの場合
StopAtFirstMatch=Falseの場合
Application.ActiveExplorer.CurrentFolder=oFolderを設定します

MsgBox( "Found:"&vbCrLf&oFolder.FolderPath&vbCrLf&vbCrLf& "Search for next?"の場合、vbQuestionまたはvbYesNo)= vbYes Then
bFound = False
終了する場合

MsgBox( "見つかりません")
終了する場合
終了する場合
bFoundThenの場合
m_Folder=oFolderを設定します
終了

LoopF​​olders oFolder.Folders
m_Folderが何もない場合は、終了します
終了する場合

End Subの
このコメントは、サイトのモデレーターによって最小化されました
うわーこれはまさにです。 私は本当に感謝しています、そしてあなたはそれをとても速くしました。ありがとう
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、マクロyes / next / noをコピーして貼り付けようとすると、「SearchEnd」というメッセージしか表示されません。ご覧ください。 とても感謝しております。 ありがとう
このコメントは、サイトのモデレーターによって最小化されました
こんにちは。マクロyes/next / noをコピーして貼り付けようとすると、「SearchEnd」というメッセージしか表示されません。
見ていただけませんか? とても感謝しております。 ありがとう
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所