Table.Restrict メソッド (Outlook)

テーブル 内の行にフィルターを適用し、新しい Table オブジェクトを取得します。

構文

Restrict( _Filter_ )

Table オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
Filter 必須 String Table オブジェクトの行に対する条件を指定します。

戻り値

Table オブジェクトの行に Filter を適用して返される Table オブジェクト。

注釈

Table.Restrict を使用して、 テーブル の親オブジェクトは、 フォルダー オブジェクトの場合、その テーブル に別のフィルターを適用することができますのみです。 親オブジェクトが Search オブジェクトの場合は、 制限 はエラーを返します。

フィルターは Table オブジェクトの行に適用されるため、これは、Filter の論理AND であるフィルターと、同じ Table オブジェクトに適用されるすべての先行するフィルターを適用する場合と同じです。

フィルター は、親 Table 内の行として表される項目の指定されたプロパティに対するクエリ です。 クエリは、Microsoft Jet 構文または DAV の検索および検索 (DASL) 構文のいずれかを使用します。 たとえば、次の Jet フィルターおよび DASL フィルター アイテムと同じ条件 LastModificationTime をより前に指定、2005 年 6 月 12 日の午後 3 時 30 分。

criteria = "[LastModificationTime] < '" & Format$("6/12/2005 3:30PM","General Date") & "'"criteria = "@SQL=" & Chr(34) & "DAV:getlastmodified" & Chr(34) 
 & " < '" & Format$("6/12/2005 3:30PM","General Date") & "'" 

Table オブジェクトにフィルターを指定する方法の詳細については、「アイテムをフィルターにかける」を参照してください。

Filter にカスタム プロパティが含まれている場合、制限が正しく機能するためには、これらのプロパティが Table オブジェクトの親フォルダーに存在する必要があります。 バイナリ プロパティ、計算されたプロパティは、HTML または rtf 形式の本文の内容など、 Table フィルターでは、特定のプロパティはサポートされていません。 詳細については、「Table オブジェクトまたは Table フィルターのサポートされていないプロパティ」を参照してください。

Filter が空の文字列の場合、Restrict は親 Table オブジェクトと同一の Table オブジェクトを取得します。

次のコードは、受信トレイのアイテムに Jet フィルターを適用し、LastModificationTime の値が 2005 年 11 月 1 日より大きいアイテムを取得します。 次に、受信トレイのそれらのアイテムの既定のプロパティの値 (EntryIDSubjectCreationTimeLastModificationTime、および MessageClass) を出力します。

注:

[!メモ] 異機種混在のアイテムが Outlook の同じフォルダーに存在できるため、さまざまな種類の受信トレイにフィルターを適用することから返された項目を引き起こすことがあります。 一般に、受信トレイ内のアイテムの既定のプロパティではない任意のプロパティへのアクセスをする前にアイテムの MessageClass をチェックする必要があります。

Sub RestrictTable() 
 'Declarations 
 Dim Filter As String 
 Dim oRow As Outlook.Row 
 Dim oTable As Outlook.Table 
 Dim oFolder As Outlook.Folder 
 
 'Get a Folder object for the Inbox 
 Set oFolder = Application.Session.GetDefaultFolder(olFolderInbox) 
 
 'Define Filter to obtain items last modified after November 1, 2005 
 Filter = "[LastModificationTime] > '11/1/2005'" 
 'Restrict with Filter 
 Set oTable = oFolder.GetTable(Filter) 
 
 'Enumerate the table using test for EndOfTable 
 Do Until (oTable.EndOfTable) 
 Set oRow = oTable.GetNextRow() 
 Debug.Print (oRow("EntryID")) 
 Debug.Print (oRow("Subject")) 
 Debug.Print (oRow("CreationTime")) 
 Debug.Print (oRow("LastModificationTime")) 
 Debug.Print (oRow("MessageClass")) 
 Loop 
End Sub

関連項目

テーブル オブジェクト

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。