🤖

Power Automate DesktopでGmailのフィルタリングをしてみた。

2022/12/25に公開

概要

Power Automate Desktopとは

MicrosoftのRPA。Windows10、11で使えます。
個人向けに一部機能が無料で使えます。
必ず公式サイト、公式ドキュメントを見て利用してください。
公式サイト 公式ドキュメント

↓参考:インストール方法、ブラウザの自動化を紹介してくださっています↓
Windows:PowerAutomate Desktopをインストールして使ってみる

今回作ったもの

ピピンプイさんのExcelの内容をWebフォームに自動転記[Power Automate Desktop]を参考に、
Gmailに届く特定の内容を含むメールを削除するフィルタを作りました。

だいたいの流れ

  1. Excelに内容をメモしておく
  2. (ここからPower Automate Desktop)
  3. Excelを読み取る
  4. ブラウザで開いたGmailの「メールを検索」に1行ずつ、内容を入力する
  5. 「削除する」にチェックを入れる
  6. 「フィルタを作成」を押す
  7. 4~6繰り返し
  8. 終わり!

Excelの中身(見本)

A列  B列

No. 内容
1 こんにちは、XXXです。
2 こんにちは、XXXのYYYです。
3 【ZZZ】
4 はじめまして!○○○です!
5 私、WWWのRRRです
6 PPPのQQQQ様限定!
# ...

Excelファイルの見本
Excelファイルの見本

Power Automate Desktopの中身

中身 前半

中身 前半(ループ直前まで)のコード(コピーして使えます)

Folder.GetSpecialFolder SpecialFolder: Folder.SpecialFolder.DesktopDirectory SpecialFolderPath=> SpecialFolderPath
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''%SpecialFolderPath%\mail_filter.xlsx''' Visible: True ReadOnly: False Instance=> ExcelInstance
Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance Name: $'''Sheet1'''
Excel.GetFirstFreeColumnRow Instance: ExcelInstance FirstFreeColumn=> FirstFreeColumn FirstFreeRow=> FirstFreeRow
Excel.ReadFromExcel.ReadCells Instance: ExcelInstance StartColumn: $'''B''' StartRow: 2 EndColumn: FirstFreeColumn - 1 EndRow: FirstFreeRow - 1 ReadAsText: False FirstLineIsHeader: True RangeValue=> ExcelData
Excel.CloseExcel.Close Instance: ExcelInstance

中身 後半(ループ)

作り方 前半(ループ直前まで)

特別なフォルダーを取得

  1. アクションのフォルダーから「特別なフォルダーを取得」をダブルクリック
    特別なフォルダーを取得
  2. 特別なフォルダーの名前:をExcelの保存場所にします。今回はデスクトップにします。
    デスクトップ
  3. 保存をクリック

Excelファイルの読み込み

  1. アクションのExcelから「Excel の起動」をダブルクリック
    Excel の起動
  • Excel の起動:「次のドキュメントを開く」を選択
  • ドキュメント パス:「%SpecialFolderPath%\mail_filter.xlsx」を入力
  1. 保存をクリック

  2. アクションのExcelから「アクティブなExcel ワークシートの設定」をダブルクリック
    アクティブなExcel ワークシートの設定

  3. ワークシート名:使用するワークシート名を入力

  4. 保存をクリック

  5. アクションのExcelから「Excelワークシートから最初の空の列や行を取得」をダブルクリック

  6. 保存をクリック

  7. アクションの「Excel」から「Excelワークシートから読み取る」をダブルクリック
    Excelワークシートから読み取る

  • 取得:「セル範囲の値」を選択
  • 先頭列:「B」を入力
  • 先頭行:「2」を入力
  • 最終列:「%FirstFreeColumn-1%」を入力
  • 最終行:「%FirstFreeRow-1%」を入力
  1. 詳細をクリックして、「範囲の最初に列名が含まれています:」をオンにする
    詳細
  2. 保存をクリック
  3. アクションのExcelから「Excel を閉じる」をダブルクリック
  4. 保存をクリック

Excel の読み込みを確認

正しくExcelファイルが読み込まれているか、三角形▷の実行をクリックして確認
読み込み確認

作り方 後半(フォーム入力のループ)

先にブラウザでGmailを開いておく

  1. アクションのループから「Loop」をダブルクリック
    loop
  • 回始値:「0」を入力
  • 終了:「%ExcelData.RowsCount - 1%」を入力
  • 増分:「1」を入力
  1. 保存をクリック
  2. ブラウザー自動化の「新しいChromeを起動する」をLoopの中にドラッグ
    Chrome
  • 起動モード:「実行中のインスタンスに接続する
  • Chrome(Edge) タブに接続する:「URL を使用
  • タブの URL:「https://mail.google.com/」を入力
  1. 保存をクリック
  2. Web フォーム入力の「Web ページのボタンを押します」を「新しいChromeを起動する」の下にドラッグ
    ボタン
  3. UI要素の追加
    UI要素
  4. Gmailの画面上のメールを検索の検索オプションを表示をCtrlキーを押しながらクリック
    UI選択
  5. 保存をクリック
  6. Webフォーム入力の「Webページ内のテキストフィールドに入力する」を「Web ページのボタンを押します」の下にドラッグ
  7. UI要素の追加
  8. Gmailの画面上のメールを検索の検索オプションを表示をクリック
  9. 入力したいフィールドをCtrlキーを押しながらクリック
    含む
  10. 保存をクリック
  11. テキスト:に「%ExcelData[LoopIndex][0]%」を入力
    テキスト
  12. 詳細をクリックし、
  • 物理キー入力を行ってテキストを入力する:をオフにする
  • 入力をエミュレートする:もオフにする
    詳細
  1. 保存をクリック
  2. Web フォーム入力の「Web ページのボタンを押します」を「Webページ内のテキストフィールドに入力する」の下にドラッグ
  3. UI要素の追加
  4. Gmailの画面上のメールを検索の検索オプションを表示をクリック
  5. 入力したいフィールドに入力したい文字を入力
  6. フィルタを作成をCtrlキーを押しながらクリック
    フィルタを作成
  7. 保存をクリック
  8. アクションのマウスとキーボードから「キーの送信」を「Web ページのボタンを押します」の下にドラッグ
    キーの送信
  9. 削除するフィルタを作る場合は、送信するテキスト

{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}
{Space}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}
{Return}

を入力({Tab}7つ、{Space}1つ、{Tab}7つ、{Return}1つ)

  1. 保存をクリック

Gmailの余計なフィルタの削除(必須)

  1. Gmailの画面上の歯車(設定)をクリック
  2. すべての設定を表示」をクリック
  3. フィルタとブロック中のアドレス」をクリック
  4. 一番下にスクロールする
  5. 余計なフィルタを削除する
    削除

▷実行して確認

  1. 三角形▷の実行をクリックして確認
  2. Gmailの画面上の歯車(設定)をクリック
  3. すべての設定を表示」をクリック
  4. フィルタとブロック中のアドレス」をクリック
  5. 下にスクロールして、フィルタが設定されているか確認

お疲れ様でした!

Discussion