特定のワードを除外したOutlookのメール件名を取得したい

Uipath初心者です。

件名に特定のワードを含むメールを除外したOutlookのメールの件名を取得して、エクセルに転記させたいです。

エクセル(ダミー用マスター)のA列に除外ワードを入力する
→そのシートをデータテーブルで読み込む
→フィルターで0列目が空白のセルを削除する
→そのデータテーブルの各行を繰り返しで0列目を”変数(除外ワード)”に入れる
→その繰り返しの中でメールを全件取得してメールメッセージリストの型の”変数(メール)”に入れる
→その”変数(メール)”の中で繰り返しで件名だけ取り出して”変数(件名)”に入れる
→条件分岐で”変数(件名)が”変数(除外ワード)”を含む場合Thenは何もしないでElseで空のデータテーブルを構築してその中にデータ行を追加で”変数(件名)を追加していく
→出来上がったデータテーブルをエクセルに転記する

上記の流れで作りましたが、エクセルに入力した除外ワードの内、1つ目のワードしか除外されません。
(正確に言えばヘッダーを追加してるので2行目のワードのみ除外されて、3行目以降に入力したワードが除外されません。)

どなたかよろしくお願いいたします。
ダミー用マスター.xlsx (14.6 KB)
質問用ダミー.xaml (17.1 KB)

ざっと見ました。間違ってたらごめんなさい。

1)ループが逆のほうが良いと思います。
「datatable_除外のループの中で、list_受信メールでのループ」ではなく、「list_受信メールでのループの中で、datatable_除外のループ」

2)ダミーワードマスターの列名はファイルに記載して「必ず1行目は列名になっている」ようにしたほうが良いと思いますです。

3)ダミーワードマスターは、上から並べて書くようにしていれば「データ テーブルをフィルター」は不要かと思いますです。

4)除外ワードを含むと判定したら、繰り返しをブレークアクティビティを入れて次のループに進むと効率的かと思いますです。

ご回答ありがとうございます。

やってみましたが、除外ワードは除外されず、除外ワードを含んでいないメールの件名がなぜか2件ずつ取得されました・・・

アップロードしたザムルファイル以外のやり方で結構です。
どなたかざっくりの流れなどを教えていただけないでしょうか・・・

こんにちは

やり方はいろいろありますが、例えば以下のような方法でも可能です。

img20210715-3

lsitResultはList<String>です。
除外キーワードはdtの"除外ワード"列に入っていると仮定しています。

1 Like

ご回答ありがとうございます。
代入に上記の式を入れましたが、『有効な式の継続文字が必要です』とエラー表示されました。
あと、Outlookメールメッセージを取得で取得したメールのリストはListMailMessageの型の変数に入れたんですがそれは使わないですか?

こんにちは

代入に上記の式を入れましたが、『有効な式の継続文字が必要です』とエラー表示されました。

どこかに入力ミスがあるのではと思います。以下コピーください。

mails.Select(Function(m) m.Subject).Where(Function(s) not dt.AsEnumerable.Any(Function(r) s.Contains(r("除外ワード").ToString))).ToList

あと、Outlookメールメッセージを取得で取得したメールのリストはListMailMessageの型の変数に入れたんですがそれは使わないですか?

mailsがそれになります。

1 Like

ご回答ありがとうございます。

これって除外ワードを件名に含むメールを除いたメールのリストが取得されるってことですか?
最終的に除外メールを除いたメールリストの件名だけを取得したいです。
str_件名にlsitResult.Subjectを代入しようとしたところ、SubjectはListStringのメンバーではありませんと表示されてしまいました。

こんにちは

いいえ、除外済みのメール件名のリストです。
For EachでlistResultをイテレートするとitem が中身(件名)になります。

1 Like

出来ました😭
うれしくて泣いてます😭
いつも本当にありがとうございます😭
お礼したいくらいです😭

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.