Power Automateを使ってゲームスクショの索引のようなものを作成したメモ
ゲームのスクショが溜まりに溜まった、あのセリフあの場面の画像を探すのが一苦労になっていました。
そのため、Power Automateを使って表示されているセリフとファイル名の一覧を作成しました。
※当メモは別の媒体で公開したものの再編集版です。
0.やりたいフロー
特定のフォルダから画像ファイル一覧を取得する
画像をOCRに掛けて文字を取得する
取得したファイル名と取得した文字をタブ区切りのテキストファイルに出力する
出力したファイルの内容をスプレッドシートに貼り付けて管理する
1.Power Automateの入手
Microsoft Storeで「Power Automate」で検索し、ダウンロードします。
※細かい仕様については、Microsoftの公式ドキュメントを参照ください。
2.新しいフローの作成
ホーム画面の左上の新しいフローを開始します。
3.画像一覧の取得
今回機種変前後で拡張子が異なっていたため、それぞれ取得し統合しました。
①アクション:フォルダー - フォルダー内のファイルを取得
├ フォルダー:スクショを保存しているフォルダのパス
└ ファイルフィルター:*.jpeg、*.png
②アクション:変数 - 変数の統合
└ 最初のリスト、2番目のリスト:①で生成した変数
4.取得した情報を保持するテーブル作成
ファイルの情報一覧を出力まで保持しておくためのテーブルを作成します。
◯アクション:変数 - データテーブル - 新しいテーブルを作成する
└ 新しいテーブル - 編集
└ 列の追加
├ ファイル名
├ ファイル作成日時
└ OCRテキスト
5.ファイル数分ループ作成
ファイル数分処理するためのループを追加します。
◯アクション:ループ - For each
└ 反復処理を行う値:「3.画像一覧の取得」で生成された変数
6.OCR位置の設定
取得するゲームスクショのメッセージウィンドウの位置を設定します。
機種変前後でサイズが異なるスクショが混在していたため、ファイルサイズ(単位:バイト)を条件にして、設定する位置を分けました。
※X,Yの数値は、画像をペイントでフォーカスしたときに、左下に表示される数値です。
7.文字の読み取り
スクショのセリフ等の文字情報を読み取り、不要なスペースと改行を削除します。
①アクション:OCR - OCRを使ってテキストを抽出
├ OCRソース:ディスク上の画像
├ 画像ファイルパス:「5.ファイル数分ループ作成」の保存先
├ 検索モード:特定のサブ領域のみ
└ X1~Y2:「6.OCR位置の設定」の変数
②アクション:テキスト - テキストを置換する
├ 解析するテキスト:①で生成された変数
├ 検索するテキスト:「%' '%」(半角スペース)、「\r\n」(改行)
└ 置き換えテキスト:「%''%」(空文字)
8.データテーブルに情報を追加
読み取ったファイルの情報をテーブルに一旦保存します。
①アクション:変数 - 新しいリストの作成
②アクション:変数 - 項目をリストに追加
├ データテーブルに追加する情報
│ ├ (1)ファイル名:「5.ファイル数分ループ作成」の保存先.Name
│ ├ (2)ファイル作成日時
│ :「5.ファイル数分ループ作成」の保存先.LastModified
│ └ (3)OCRテキスト:「7.文字の取り込み」で生成された変数
└ ①で作成した変数
※その他ファイルのプロパティを出力したい場合、右側の「{x}」をクリックして「フロー変数」から「5.ファイル数分ループ作成」の保存先変数名をダブルクリックするとプロパティの一覧が確認できるので、ここからプロパティ名を持ってきます。
③アクション:変数 - データテーブル - 行をデータテーブルに挿入する
├ データテーブル
│ :「4.取得した情報を保持するテーブル作成」で生成された変数
├ 挿入場所:データテーブルの末尾
└ 新しい値:①で生成された変数
9.テキストファイルへ出力
データテーブルに保存した各ファイルの情報をテキストファイルに出力します。
〇アクション:ファイル - CSVファイルに書き込む
├ 書き込み変数
│ :「4.取得した情報を保持するテーブル作成」で生成された変数
├ ファイルパス:保存先フォルダ\保存ファイル名
└ 詳細 - 区切り記号:タブ
10.完成!
出力した内容をスプレッドシートにコピペして、検索やフィルタして活用しています。
この記事が気に入ったらサポートをしてみませんか?