Power Automate for desktop初心者向けに、サンプルのフローとその作り方を紹介するシリーズです。
今回は、Excelに記載された英単語をその隣の列に日本語に翻訳して記入するというフローを作成します。
データ元のExcel
データ元のExcelには、以下のものを使用します。
A列には既に英単語が記入されており、B列にA列を翻訳した日本語を記入します。
フローの全体像
まずフローの全体像を公開しておきます。
このワークスペース(フローのアクションを記載する場所)を見て理解出来る方はこちらを見て真似した方が早いかもしれません。
フローの作り方
フローの作成
Power Automate for desktop起動画面から、左上の新しいフローをクリックします。
クリック後現れたポップアップのフロー名に、Excel翻訳と入力してフローに名前を付けます。
Excelの起動
画面左側のアクションペインから、Excel→Excelの起動をワークスペースへドラッグアンドドロップします。
追加したらExcelの起動を次のドキュメントを開く、ドキュメントパスをファイルの選択よりパスを指定します。
このアクションを保存するために、保存ボタンを押します。
Excelワークシートから最初の空の列や行を取得
このアクションで、Excelの表で一番最初に空白となっている列と行(今回では列:3行目、行:5行目)を取得します。
ここで最初の空の列や行を取得しておくことで、どこからどこまでの値を翻訳させるのかを指示します。
画面左側のアクションペインから、Excel→Excelワークシートから最初の空の列や行を取得をワークスペースへドラッグアンドドロップします。
Excelインスタンスのドロップダウンより、1つ前に作成された変数%ExcelInstance%を選択します。
ここで生成される変数に、FirstFreeColumnとFirstFreeRowとあります。
こちらが最初の空の列や行です。
Excelワークシートから読み取り
このアクションでは、Excelから範囲を指定して値をPower Automate Desktop側に保存させます。
画面左側のアクションペインから、Excel→Excelワークシートから読み取りを ワークスペースへドラッグアンドドロップします。
各パラメーターを、以下の様に変更します。
変数はテキストボックス右側の{x}より指定します。
ここでのポイントは、最終列と最終行に先ほど生成された変数であるFirstFreeColumnとFirstFreeRowを使用しているという点です。
ただ変数を入力するだけでは最初の空白の列または行を含みますので、-1をすることで含まないようにしています。
詳しい解説→Power Automate for desktopでExcelからデータを取得する方法
新しいChromeを起動する
ここまででExcelから情報を取得することが出来ました。
ここからは、取得したExcelの情報をWebサイトへ入力していきます。
画面左側のアクションペインから、Webオートメーション→新しいChromeを起動するを ワークスペースへドラッグアンドドロップします。
各パラメータを、以下の様に設定します。
今回は翻訳サイトとして、Google翻訳を指定します。
For each(コレクションの繰り返し処理)
今回はExcelの表にある情報に対して翻訳を行いますので、コレクション(配列)に対して繰り返し処理を行うFor eachアクションを使用します。
画面左側のアクションペインから、ループ→For eachを ワークスペースへドラッグアンドドロップします。
反復処理を行う値は、Excelから取得したdatatable型の変数であるExcelDataを使用します。
これで、For each~EndまでのアクションをExcelから取得した値ごとに繰り返し処理出来るようになりました。
変数の設定(カウント用変数)
繰り返し処理の何回目なのかを保存しておく変数を作成します。
画面左側のアクションペインから、変数→変数の設定を ワークスペースへドラッグアンドドロップします。
繰り返し処理を行うごとに、CountVar変数の値が1づつ増えていくように設定できます。
Webレコーダー
ここからは、Webレコーダー機能を用いて自動化を行う処理を記録します。
準備として、
- ブラウザの拡張機能インストール
- Google翻訳をブラウザ(今回はChrome)で起動
しておいてください。
Webレコーダーをクリックして、Webレコーダーを起動します。
この画面が表示されますので、使用するブラウザを選択します。
次へをクリックすると、こちらの画面が表示されます。
自動化を行いたいタブが開かれていることを確認し、記録の開始をクリックします。
記録の開始が行われると、ブラウザ上に以下の様に赤い枠線が表示されるようになります。
通常通りこちらのテキストボックスに翻訳するテキストを入力します(今回はりんごと入力しました)。
入力したら、テキストボックスの欄外をクリックします。
欄外をクリックしなければアクションが記録されませんのでご注意ください。
翻訳後の言語が正しく設定されていない場合はそちらをクリックしても構いません。
翻訳後のテキストを右クリックし、要素の値を抽出→テキストを選択します。
そして、入力した内容を削除するために×ボタンをクリックします。
ここまででWebレコーダーは終了です。
Webページに移動アクションは不要ですので削除します。
その他にも誤ってクリックしてしまったために生成されたアクションはここで削除します。
完了ボタンを押して編集画面に戻ります。
このようなアクションが生成されたはずです。このアクションをExcelから取得した値が入力されるように書き換えていきます。
Webページ内のテキストフィールドに入力する
Webレコーダーで生成されたアクションを編集します。
テキストを以下の様に設定します。
[x]をクリックしてもCurrentItem変数しか出ませんので、 CurrentItem変数選択後に%の前にExcelの0列目を指定する[0]を入れる必要があります。
これだけでWebレコーダーで生成されたアクションの編集は終了です。
Excelワークシートに書き込み
Webレコーダーで生成されたアクションの後に、翻訳した値をExcelへ書き込むアクションを追加します。
画面左側のアクションペインから、Excel→Excelワークシートへ書き込みをワークスペースへドラッグアンドドロップします。
各パラメーターを以下の様に設定します。
ここまで問題なく設定できていれば、難しくないと思います。
For eachへ格納
変数の設定~Excelワークシートへ書き込みのアクションをFor each~Endの間にドラッグアンドドロップで移動させます。
これで繰り返し処理をしてくれるようになります。
Webブラウザーを閉じる・Excelを閉じる
WebブラウザーとExcelを閉じてフローを終了させます。
画面左側のアクションペインから、Webオートメーション→Webブラウザーを閉じるをワークスペースへドラッグアンドドロップします。
画面左側のアクションペインから、Excel→Excelを閉じるをワークスペースへドラッグアンドドロップします。
フローの実行
画面上部の実行をクリックします。
フローが起動し処理が実行されて、以下の様に翻訳されたテキストがExcelのB列に入力されます。
テストが問題なく動いたら、保存を押してフローを保存します。
このフローで学んだことのまとめ
- Excelの範囲指定をする場合にはExcelワークシートから最初の空の列や行を取得が便利
- For eachで繰り返し処理をしているアイテムを取り出すには、変数名[列番号]の形式で列名を指定する必要がある
- 動的な値をWebレコーダーで入力したい場合は、とりあえず適当な値を入力してワークスペース上で書き換える
長いですが、実際に作ってみると理解が深まると思います。
コメント
[…] 第1回→【初心者向け Power Automate Desktop の使い方 1】Excelに記載された単語をGoogle翻… […]