Items.Restrictリストリクト メソッド

本ページには広告が含まれています。

Items コレクションにフィルタをかけ、一致するアイテムのコレクションを返します。

条件式はJetクエリまたはDASLクエリで記述します。

コレクションにフィルタをかけるメソッドとしてItems.Find メソッドもありますが、違いは検索速度くらいで検索対象のアイテムが少ないときに使います。検索対象のアイテムが多いときはItems.Restrict メソッドを使うと良いです。

構文
  1. Items = Items.Restrict( Filter )
引数
Filter 省略可
適用するフィルター文字列式
戻り値
Items コレクションにフィルターを適用し、フィルターに一致するアイテムを含む新しいItems コレクションを返します。

Items オブジェクトを返すメソッド・プロパティ

Items.Restrict メソッド
Items コレクションにフィルタを適用し、フィルタに一致する元のすべてのアイテムを含む新しいItems コレクションを返します。

フィルタ

Jetクエリ

Outlook 2003以前のバージョンで使用されていたフィルタ式の記述方法で、AccessのJetデータベースエンジンと同じ構文を使用しています。

Jetクエリで使えるカラム([ ]で囲まれた名前)はMailItem オブジェクトのプロパティと同じと考えて大丈夫だと思います。

フィルタ説明
[BCC]ブラインド・カーボン・コピー(Blind Carbon Copy)
[CC]カーボン・コピー(Carbon Copy)
[Importance]重要度。0:低、1:標準、2:高。
[LastModificationTime]最終更新日時。日時の形式を参照。
[ReceivedTime]受信日時。日時の形式を参照。
[SenderEmailAddress]送信元アドレス
[SenderName]送信者名
[SentOn]送信日時
[Size]メールのサイズ、バイト(Byte)単位。
[Subject]件名
[To]宛先
[UnRead]メールの未既読を指定。TRUEなら未読、FALSEなら既読。
重要度(Importance)

重要度で絞り込みます。

UWSC
受信日時(ReceivedTime)

受信日時で絞り込みます。以下は受信日が2023/05/01のメール。[ReceivedTime]は日時情報も含んでいて日時と日付の比較ではマッチしないので、以下のように範囲で指定します。

UWSC
UWSC

受信日時で絞り込みます。以下は受信日時が2023/05/08 09:00:00~2023/05/08 09:59:59のメール。

UWSC

受信日時は分単位でしか指定できないため、秒単位で絞ることはできず範囲で絞るしかありません。以下は2023/05/08 21:15:00~2023/05/08 21:15:59に受信したメール。

UWSC
送信者アドレス(SenderEmailAddress)

送信者アドレスで絞り込みます。以下は送信者アドレスが[email protected]のメール。

UWSC
送信者名(SenderName)

送信者名が空欄ではないメール。

UWSC
件名(Subject)

件名がキーワードに一致するメール。

UWSC
サイズ(Size)

サイズで絞り込みます。以下はサイズが5000バイト以上のメール

UWSC

サイズが1000~5000バイトのメール。

UWSC
宛先(To)

宛先が[email protected]のメール。

UWSC
未既読(UnRead)

未読のメール。

UWSC

既読のメール。

UWSC
複数条件

複数の条件を指定する場合は条件を論理演算子(AND、OR)で繋げます。

UWSC

DASLクエリ

Outlook 2007以降のバージョンで導入されたフィルタ式の記述方法で、SQLに似た構文を使用しています。

UWSC
urn:schemas:httpmail: Namespace | Microsoft Learn
名前空間
urn:schemas:httpmail
プロパティ名 説明
attachmentfilename
bccBCC
calendar
contacts
content-disposition-type
content-media-type
date
datereceived受信日時
deleteditems
displaybcc
displaycc
displayto
drafts
expiry-date
flagcompleted
from
fromemail送信元アドレス
fromname
hasattachment添付ファイル
True:あり、False:なし
htmldescription
importance重要度
0:低、1:標準、2:高
inbox
journal
messageflag
msgfolderroot
normalizedsubject
notes
outbox
priority
read未既読。0:未読、1:既読
reply-by
reply-to
savedestination
saveinsent
sendmsg
sender
senderemail
sendername
sentitems
subject件名
submitted
tasks
textdescription本文
thread-topic
to
unreadcount
urn:schemas-microsoft-com:office:office Keywords 分類項目
重要度(Importance)

重要度が標準のメール。

UWSC
受信日時(datereceived)

受信日が2023/05/01のメール。

UWSC

受信日が今日のメール。

UWSC

受信日が昨日のメール。

UWSC

受信日が今週のメール。

UWSC

受信日が先週のメール。

UWSC

受信日が今月のメール。

UWSC

受信日が先月のメール。

UWSC

SQLで複数の条件を指定する場合は、Restrictメソッドを繰り返し実行します。以下は受信日時が今日で件名に重要を含むメール。

UWSC
件名(Subject)

件名が重要で始まるメール。

UWSC

件名が重要を含むメール。

UWSC

件名がRE:で始まるメール。大文字小文字の区別はなし。

UWSC

件名がFW:で始まるメール。大文字小文字の区別はなし。

UWSC
カテゴリ(Categories)

カテゴリがついていないメール。

UWSC
添付ファイル

添付ファイルがあるメール。

UWSC

添付ファイルがないメール。

UWSC
送信元アドレス(fromemail)

送信元アドレスに@docomo.ne.jpを含むメール。後方一致ができないので部分一致で行っています。

UWSC
複数条件

受信日時が2023/05/01のメール。

UWSC

受信日時が2023/01/01以降で添付ファイルがあるメール。

UWSC

日時の形式

以下の形式の組み合わせで記述することができます。時刻区分(午前/午後)を指定しなかった場合、時刻は24時間表記となります。

  • <日付>
  • <日付> <時刻>
  • <日付> <時刻><時刻区分>
  • <日付> <時刻> <時刻区分>
  • <日付> <時刻区分><時刻>
  • <日付> <時刻区分> <時刻>
  • <時刻区分><時刻> <日付>
  • <時刻区分> <時刻> <日付>
UWSC

日付の形式

  • YYYY/MM/DD
  • MM/DD/YYYY
  • YYYY/M/D
  • M/D/YYYY
  • YYYY年MM月DD日
  • MM月DD日YYYY年

時刻の形式

  • HH:MM
  • H:M

時刻区分

  • 午前/午後
  • AM/PM
  • A/P

AM0:00、AM12:00は24時間表記の0:00、PM0:00、PM12:00は24時間表記の12:00を指します。

時刻を24時間表記で記述した場合、時刻区分は記述しても無視されます。

以下はどちらも2023/05/10 13:00を指します。

UWSC

LIKE句

列(カラム)に対して文字列検索を行うことができます。

クエリ説明
LIKE '<文字列>'完全一致
LIKE '<文字列>%'前方一致
LIKE '%<文字列>%'文字列を含む

比較演算子・論理演算子

演算子意味
a = baとbが等しい
a < baがb未満より小さい
a <= baがb以下
a > baがbより大きい
a >= baがb以上
a <> baとbが等しくない
a AND baかつb
a OR baまたはb
IS NULL否定

フィルタにかけたメールの件数を求めるにはItems.Count プロパティを使います。以下は未読メールの件数を取得します。

UWSC

ここにはない演算子を使って条件を指定する場合は、MailItemでループするときにIF文を使います。

以下は受信日時が2022/01/01〜2022/01/31の範囲で、件名に重要を含むメールを抽出する例。

UWSC

プログラム実行例

指定期間に受信したメールを取得(Outlook)

UWSC
使用関数
解説(自動生成)

指定期間のメール情報を取得(Outlook)

UWSC
使用関数
解説(自動生成)

指定期間に受信したメールからURLを抽出(Outlook)

UWSC
使用関数
解説(自動生成)

指定期間に受信したメールの添付ファイルをすべて保存(Outlook)

UWSC
使用関数
解説(自動生成)

指定期間のメールを日毎に集計(Outlook)

UWSC
結果
プレーンテキスト
使用関数
解説(自動生成)

過去7日間に受信した迷惑メールの受信日時とメールアドレスを取得

UWSC
使用関数
解説(自動生成)

未読メールの本文からURLを抽出

UWSC
使用関数
解説(自動生成)

参考文献

  1. Items.Restrict メソッド (Outlook) | Microsoft Learn
  2. Outlookメール取得時のフィルタについて | コボットPortal
  3. 検索やフィルターの構文 - アルパカのメモ
  4. Get Outlook Mail activity Filter with From AND Subject - Help - UiPath Community Forum
  5. Compoze Software API Documentation: Class HttpMailProperty

関連記事

MailItem オブジェクト
メールメッセージを表します。
MailItem.Attachments プロパティ (Outlook)
メールに添付されているすべての添付ファイルを表すAttachments オブジェクトを返します。
MailItem.BodyFormat プロパティ (Outlook)
メール本文の形式を表すOlBodyFormatクラスの定数を取得または設定します。
MailItem.To プロパティ (Outlook)
Outlook アイテムの宛先の受信者の表示名一覧を表す、セミコロン(;)で区切られた文字列型(String) の一覧を設定します。
MailItem.HTMLBody プロパティ (Outlook)
メールのHTML形式の本文を表す文字列型の値を取得または設定します。
MailItem.Parent プロパティ (Outlook)
指定したオブジェクトの親オブジェクトを返します。
MailItem.ReceivedTime プロパティ (Outlook)
アイテムを受信した日付と時刻を示す日付型(Date)の値を取得します。
CDO.From プロパティ
メッセージの差出人(From)を指定します。
AppointmentItem オブジェクト
新しい予定を表すAppointmentItemオブジェクトを作成します。
Folder オブジェクト