Power Automate DesktopでGmailのフィルタリングをしてみた。
概要
Power Automate Desktopとは
MicrosoftのRPA。Windows10、11で使えます。
個人向けに一部機能が無料で使えます。
必ず公式サイト、公式ドキュメントを見て利用してください。
公式サイト 公式ドキュメント
↓参考:インストール方法、ブラウザの自動化を紹介してくださっています↓
Windows:PowerAutomate Desktopをインストールして使ってみる
今回作ったもの
ピピンプイさんのExcelの内容をWebフォームに自動転記[Power Automate Desktop]を参考に、
Gmailに届く特定の内容を含むメールを削除するフィルタを作りました。
だいたいの流れ
- Excelに内容をメモしておく
- (ここからPower Automate Desktop)
- Excelを読み取る
- ブラウザで開いたGmailの「メールを検索」に1行ずつ、内容を入力する
- 「削除する」にチェックを入れる
- 「フィルタを作成」を押す
- 4~6繰り返し
- 終わり!
Excelの中身(見本)
A列 B列
No. | 内容 |
---|---|
1 | こんにちは、XXXです。 |
2 | こんにちは、XXXのYYYです。 |
3 | 【ZZZ】 |
4 | はじめまして!○○○です! |
5 | 私、WWWのRRRです |
6 | PPPのQQQQ様限定! |
# | ... |
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
作り方 前半(ループ直前まで)
特別なフォルダーを取得
- アクションのフォルダーから「特別なフォルダーを取得」をダブルクリック
- 特別なフォルダーの名前:をExcelの保存場所にします。今回はデスクトップにします。
- 保存をクリック
Excelファイルの読み込み
- アクションのExcelから「Excel の起動」をダブルクリック
- Excel の起動:「次のドキュメントを開く」を選択
- ドキュメント パス:「%SpecialFolderPath%\mail_filter.xlsx」を入力
-
保存をクリック
-
アクションのExcelから「アクティブなExcel ワークシートの設定」をダブルクリック
-
ワークシート名:使用するワークシート名を入力
-
保存をクリック
-
アクションのExcelから「Excelワークシートから最初の空の列や行を取得」をダブルクリック
-
保存をクリック
-
アクションの「Excel」から「Excelワークシートから読み取る」をダブルクリック
- 取得:「セル範囲の値」を選択
- 先頭列:「B」を入力
- 先頭行:「2」を入力
- 最終列:「%FirstFreeColumn-1%」を入力
- 最終行:「%FirstFreeRow-1%」を入力
- 詳細をクリックして、「範囲の最初に列名が含まれています:」をオンにする
- 保存をクリック
- アクションのExcelから「Excel を閉じる」をダブルクリック
- 保存をクリック
Excel の読み込みを確認
正しくExcelファイルが読み込まれているか、三角形▷の実行をクリックして確認
作り方 後半(フォーム入力のループ)
先にブラウザでGmailを開いておく
- アクションのループから「Loop」をダブルクリック
- 回始値:「0」を入力
- 終了:「%ExcelData.RowsCount - 1%」を入力
- 増分:「1」を入力
- 保存をクリック
- ブラウザー自動化の「新しいChromeを起動する」をLoopの中にドラッグ
- 起動モード:「実行中のインスタンスに接続する」
- Chrome(Edge) タブに接続する:「URL を使用」
- タブの URL:「https://mail.google.com/」を入力
- 保存をクリック
- Web フォーム入力の「Web ページのボタンを押します」を「新しいChromeを起動する」の下にドラッグ
-
UI要素の追加
-
Gmailの画面上のメールを検索の検索オプションを表示をCtrlキーを押しながらクリック
- 保存をクリック
- Webフォーム入力の「Webページ内のテキストフィールドに入力する」を「Web ページのボタンを押します」の下にドラッグ
- UI要素の追加
- Gmailの画面上のメールを検索の検索オプションを表示をクリック
-
入力したいフィールドをCtrlキーを押しながらクリック
- 保存をクリック
- テキスト:に「%ExcelData[LoopIndex][0]%」を入力
- 詳細をクリックし、
- 物理キー入力を行ってテキストを入力する:をオフにする
-
入力をエミュレートする:もオフにする
- 保存をクリック
- Web フォーム入力の「Web ページのボタンを押します」を「Webページ内のテキストフィールドに入力する」の下にドラッグ
- UI要素の追加
- Gmailの画面上のメールを検索の検索オプションを表示をクリック
- 入力したいフィールドに入力したい文字を入力
-
フィルタを作成をCtrlキーを押しながらクリック
- 保存をクリック
- アクションのマウスとキーボードから「キーの送信」を「Web ページのボタンを押します」の下にドラッグ
- 削除するフィルタを作る場合は、送信するテキストに
{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}
{Space}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}
{Return}
を入力({Tab}7つ、{Space}1つ、{Tab}7つ、{Return}1つ)
- 保存をクリック
Gmailの余計なフィルタの削除(必須)
- Gmailの画面上の歯車(設定)をクリック
- 「すべての設定を表示」をクリック
- 「フィルタとブロック中のアドレス」をクリック
- 一番下にスクロールする
-
余計なフィルタを削除する
▷実行して確認
- 三角形▷の実行をクリックして確認
- Gmailの画面上の歯車(設定)をクリック
- 「すべての設定を表示」をクリック
- 「フィルタとブロック中のアドレス」をクリック
- 下にスクロールして、フィルタが設定されているか確認
Discussion