How to: Programmatically Search Within a Specific Folder
This code example uses the Find and FindNext methods to search for text in the subject field of e-mail messages that are in the Inbox. This method uses a string filter to check for the letter T as the starting letter of the Subject text.
Applies to: The information in this topic applies to application-level projects for Outlook 2013 and Outlook 2010. For more information, see Features Available by Office Application and Project Type.
Example
Private Sub SearchInBox()
Dim inbox As Outlook.MAPIFolder = Me.Application.ActiveExplorer().Session. _
GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Dim items As Outlook.Items = inbox.Items
Dim mailItem As Outlook.MailItem = Nothing
Dim folderItem As Object
Dim subjectName As String = String.Empty
Dim filter As String = "[Subject] > 's' And [Subject] <'u'"
folderItem = items.Find(filter)
While (folderItem IsNot Nothing)
mailItem = TryCast(folderItem, Outlook.MailItem)
If mailItem IsNot Nothing Then
subjectName = vbCrLf & mailItem.Subject
End If
folderItem = items.FindNext()
End While
subjectName = "The following e-mail messages were found: " _
& subjectName
MsgBox(subjectName)
End Sub
private void SearchInBox()
{
Outlook.MAPIFolder inbox = this.Application.ActiveExplorer().Session.
GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.Items items = inbox.Items;
Outlook.MailItem mailItem = null;
object folderItem;
string subjectName = string.Empty;
string filter = "[Subject] > 's' And [Subject] <'u'";
folderItem = items.Find(filter);
while (folderItem != null)
{
mailItem = folderItem as Outlook.MailItem;
if (mailItem != null)
{
subjectName += "\n" + mailItem.Subject;
}
folderItem = items.FindNext();
}
subjectName = " The following e-mail messages were found: " +
subjectName;
MessageBox.Show(subjectName);
}
See Also
Tasks
How to: Programmatically Retrieve a Folder by Name