タグ別アーカイブ: RPA

OneDriveのフォルダ内の全てのファイル・シートを自動変換する

今回はクラウド上のエクセルファイル内で使える、オフィススクリプト(旧VBA)とPower Automateの組み合わせで自動化処理を行います

やりたい事

OneDriveのフォルダに入れた「すべて」のエクセルファイルの「すべて」のシートを、事前に決められた内容に従って変換処理を行うことです

上の画像では、B2セルの①フォント文字を強調、②背景の色を黄色に、の2種類の変換が行われています

この①②の処理をすべてのファイル、すべてのシートで行います

ポイント

読者の皆様の中には、エクセルの記録マクロを使用した方が多くいらっしゃると思います

今回はエクセルマクロのクラウド版、オフィススクリプトで記録した内容を修正して活用します

修正した内容は、Power Automate/クラウド版RPAで動かします

Power AutomateでOneDriveのあるフォルダから全てのファイルの内容を取得し、エクセルファイルのみを選別して前述のオフィススクリプトを動かします

オフィススクリプト

記録操作

オフィススクリプトは「自動化」のタブから行います

自動化のタブをクリックすると「操作を記録」が行えるようになります

「操作を記録」を押した後に①フォント文字を強調、②背景の色を黄色、を行い「停止」を押します

「停止」を押すと、記録されたコードが「編集」から見れるようになります

コードで注目して頂きたいのは2つの点です

一つ目は「波括弧」です

{と}の間にB2セルを選択した処理が2つ書かれています

特に注目して頂きたいのが2点目です

こちらの「let」です

こちらはプログラミングの「変数」と同じ役割をします

「workbook.getActiveWorksheet()」すなわちファイル内の「アクティブ=選択・処理しているシート/単数」を「selectedSheet」に当てはめています

ですので、次に続くコードはselectedSheetすなわち「選択・処理しているシート/単数」 の 「getRange(“B2”)=B2セルの内容」 「getFormat=書式」 の 「getFont=フォント」 を 「setBold(true)=太くする」になります

次はこのletで設定する変数と、変数を使用していたコードの内容を変更します

コードの変更

この時点では、letで設定する「selectedSheet」は選択されているシートのみが対象になります

こちらを次のように変更します

「workbook.getWorksheets()」とすることで、ファイル内の全てのシート(sがつく複数形)にします

そして、次に取得したシートの全てに前述の①②の処理が行えるように修正を行います

要は繰り返し処理を行うのですが、繰り返し処理の構文*は次の通りとなります

*こちらのページのコレクションの箇所になります

for(let 変数2 of 変数1){

・繰り返し処理する内容1

・繰り返し処理する内容2

}

こちらの内容は英語の「All of ~」と同じになります

All of ~とすることで~の内容の全てが対象になります

この仕組みと同じです

ですので、letで取得したSheetsの全ての各シート:Sheetを変数2として設定します

ここで、では「Sheets」で設定した内容と「Sheet」の内容とは何が違うのか?と疑問に思われる方もいらっしゃると思います

対象は同じですが、Sheetsの方は複数形で全体そのものを指しています

一方、Sheetの方はあくまで全体の構成要素の一つ一つを指します

では、コードの修正の最後として「selectedSheet」を「Sheet」に変更します

こちらは「Ctrl+H」によって一気に変更することも可能です

コードの修正が完成したらコードの保存を行い、名称(allSheets)を付けます

Power Automate

Power Automateでは、フォルダ内にある全てのファイルを取得しつつ、各ファイルに対してオフィススクリプトを実行します

Power Automateではシナリオを実行するトリガー(起動条件*)をまず最初に選ぶのですが、今回は「インスタントクラウドフロー」すなわち手動でトリガーを選択します

*メールが届いた時、〇時に起動などを本来は選択できます

次にフロー名を付けて「手動でフローをトリガーします」を選択します

次の画面にて新しいステップを追加します

そして「OneDrive」を検索します

次にOneDrive関連のアクションから「フォルダー内のファイルリスト」を選択します

「フォルダー内のファイルのリスト」のアクションでは、該当のフォルダを設定します

この「フォルダー内のファイルのリスト」アクションにより、該当フォルダ内のファイルが一覧になります

ファイルの一覧は後述する「ID」という形で次のアクションに受け渡します

これで2つアクションが設定できました

次は「スクリプト(オフィススクリプト)の実行」アクションを設定します

スクリプトの実行アクションでは、前述のIDを指定します

上のGIF画像では、ファイル欄にIDを設定した途端に「Apply to each」というものが適用されています

これはeach/それぞれのファイルにスクリプトを実行するという意味になります

スクリプトは前述の「allSheets」を選択します

付け加えてスクリプトを実行するファイルは、拡張子が「.xlsx」に限定できるようにします

この限定作業には「コントロール」から「条件」を使用します

次に展開する画面で実際の条件を指定します

条件を設定したら、「スクリプトの実行」アクションは「はい」の下に移動します

これで「フォルダーから全てのファイルを取得」⇒「拡張子が.xlsxのファイルにてスクリプトを実行」のシナリオが完成しました

<まとめ>

今回はオフィススクリプトとPower Automateを組み合わせ、フォルダ内のエクセルファイルの全てのシートを変更する方法を解説しました

これは従来のVBAやRPAでは行えない処理です

クラウドの醍醐味がある処理だと思います

ぜひ試してみてください

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

POWER POINTのスライドを作成するように手軽にアプリ作成~クラウドフロー連携~

【Power Platformの1つ、Power Appsを習得して、DXの主役になろう!】

今回は前回記事で作成したタスク管理アプリにクラウドフロー/Power Automateを連携して、データを追加・更新したことをTeamsに投稿できるようにしましょう

クラウドフロー/Power Automate

数種類のクラウドサービスを組み合わせて自動化を行うRPAです

Power AutomateはPower Platformの1つです

クラウドフローではデスクトップで動くRPAと違い、トリガーという概念がとても重要になります

デスクトップは主にボタンを押したら動きますが、クラウドフローの場合は違います

例えば「メールが届いた」「Teamsで投稿があった」などをトリガーにして動きます

今回は簡単な内容ですが、クラウドフローがどんなものかを感じて頂けたら幸いです

Power AppsとPower Automateの連携

今回は、Power Appsで更新ボタンを押したら、Teamsの指定チャネル内で追加・更新があった旨を投稿します

その際、Power Apps内で作成した「タスク名」をPower Automateに渡し、Teams内の投稿内容に含めます

Power Apps

上の画像で黄色く印をつけた箇所/DataCardValue5はタスク「衣装準備」が格納された場所です

こちらに格納されたタスク名を「Power Automate連携」というPower Automate内のフローに渡します

Power Automate内では、受け取ったタスク名をTeamsに投稿します

Power Automate

Power Automateフロー作成

まずはPower Automateを開きます

*Officeのライセンスによっては使えないケースがあります

Power Automateが開いたら、画面左の「作成」を選択します

ここで、必要に応じて手動でトリガーを走らせる「インスタントクラウドフロー」を選択します

ここでフロー名を入力した後に、トリガーとしてPower Appsを選択し、画面右の作成をクリックします

次に開いた画面では次のような状態になっています

ここから新しいステップを追加します

追加するのは「変数の初期化」というステップなので、変数を検索しておきます

変数関連のステップが複数表示されますので「変数を初期化する」を選択します

「変数を初期化する」ステップでは3つ設定します(名前、種類、値)

変数を初期化するステップでは、Power Appsから渡された「タスク」を受け取りますので、名前は「タスク」、種類は「文字列」を設定します

では値はどうするか?、Power Automateでは「動的なコンテンツ」という仕組みがあります

動的なコンテンツの仕組みで値に「Power Appsで確認」を設定します

実際に値が設定されると「変数を初期化する_値」という表示になります

これで、Power Appsから受け取った「タスク」がPower Automateの箱に入りました

最後にTeamsへの投稿を設定します

再び「新しいステップ」をクリックします

次に「Microsoft Teams」をクリックします

するとTeams関連のステップが複数表示されます

複数表示されたステップの中から「チャットまたはチャネルでメッセージを投稿する」を選択します

このステップは右側の▼マークをクリックし、候補を表示しながら設定を行っていきます

最後のメッセージにはPower Appsから受け取ったタスクを組み込みます

こちらのタスクは動的なコンテンツで設定します

Power Appsでの設定

Power Appsでは、まずは「EditScreeen1」を選択します

タスク一覧が表示されますので、「更新ボタン」をクリックしましょう

画面左のプロパティを「OnSelect」に変更すると、データの更新を行うSubmit関数が設定されているのが分かります

*SubmitForm(EditForm1)でEditForm1の内容でデータを更新します

こちらにPower Automateとの連携内容を組み込みます

画面上から「アクション」⇒「Power Automate」と順にクリックします

すると作成してあるPower Automateのフロー名が複数表示されますので、先ほど作成したフロー名を指定します

すると、数式バーに選択したフロー名+Run関数が設定されます

このままではエラーになりますので、Power Automateに渡すタスクを格納できるようにします

タスクは「DataCardValue5」に格納されているので、次のようにRun関数を設定します

これでPower Automateとの連携は完成しました

肝心のSubmit関数も忘れず設定しておきましょう

<まとめ>

今回はPower AppsとPower Automateを連携して、データ更新内容をTeamsに投稿しました

意外と直感的に操作できるのを実感して頂けたと思います

今回の記事ではPower Automateは簡単にしか紹介していませんが、別な記事で詳細に解説を行いたいと思います

1点だけPower Automateに関する注意点があります

Power Automateはクラウドフローですので、各クラウドと接続ができていないと動きません

接続を確認するには、こちらで確認できます

「・・・」をクリックするとマイコネクションに接続状況が表示されます

必要に応じて新しい接続の追加(サイインイン)を行ってください

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

待機処理

Microsoft社の無料RPA・Power Automate Desktopのアクションの中から、待機処理のアクションを紹介します

待ち秒の作成

こちらを御参照ください

マウスポインターの形が変更になるまで待機

アクション名:マウスを待機する

このアクションではマウスポインタ―の形が変更になるまでフローを中断・待機します

下のGIF画像では、マウスポインタ―がマウスポインタ―の形が矢印からアルファベットのアイの形になるまでフローを中断しています

このアクションを利用すれば、複数テキストボックスの中から入力するテキストボックスを選択してからテキストを入力させることができます

パラメーターの選択

マウスポインタ―が次に変わるのを待機します

マウスポインタ―の形が次のパラメーターで選択した形になるまでフローを中断する「次に変わる」と「無効になる」の中から選択できます

マウスポインタ―

次の画像のように様々な形から設定できます

サンプル

UI要素を変更する必要があります

プロセスを待機する

このアクションにより特定のプロセスの開始、終了までフローを中断・待機することができます

下のGIF画像ではタスクマネージャーで「エクセル」を終了した時、フローを再開しています

パラメーターの選択

プロセス名

一番右側にある「下向きの▼マーク」から選択が行えます

プロセスの待機目的

開始と停止から選択して設定できます

テキスト表示の待機(OCR使用)

アクション名:テキストが画面に表示されるまで待機(OCR)

下のGIF画像ではこのアクションで「TEST」という文字が表示されるまでフローを中断・待機しています

パラメーターの選択(一部省略)

テキストが次の状態になるまで待機

事前に指定したテキストが「表示」もしくは「非表示」になるまで待機をするかを選択できます

検索するテキスト

待機処理になる対象の「テキスト」を設定します

OCRエンジンの設定

処理に使用する言語を指定できます

ウィンドウを待機する

UI要素の表示、非表示などを通じてフローを中断・待機します

下のGIF画像では、A1セルにUI要素を設定してあるエクセルファイルを閉じると同時に、フローが再開されます

パラメーターの選択

ウィンドウの検索

UI要素などを一覧から選択できます

ウィンドウ

UI要素を指定します

ウィンドウが次の状態になるまで待機

次の一覧から選択できます

画像の表示・非表示(消える)を待機

アクション名:画像を待機

下のGIF画像ではこのアクションで画像の非表示(消える)を判定し、フロー再開しています

パラメーターの選択(一部省略)

画像が以下の状態になるまで待機する

「表示される」もしくは「消える」から選択できます

待機する対象の画像

対象となる画像を設定します

詳細はこちらを御確認ください

特定ファイルの待機

詳細はこちらを御確認ください

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村
にほんブログ村 IT技術ブログ VBAへ

POWER AUTOMATE DESKTOP でAPIを操作してデータを取得するの巻

 APIは「アプリケーション・プログラミング・インターフェイス」の略語で、Webスクレイピングとは違い、あらかじめネット上に公開してあるデータを収集します

今回の記事では、Power Automate Desktopを使用してAPIを操作する方法を解説します

 尚、APIそのものについてはこの記事では詳細には解説しませんので、もっと詳細を知りたい方は他のサイト等を参考にされてください

データの時間

ビジネス+IT

実際に記事の内容を動かしてみて、APIというものを実感して頂けたら幸いです

一番簡単なパターン/登録不要

通常、APIを利用する際にはAPIを利用するサイトで登録を行い、ID等を事前に取得する必要があります

今回は、登録が必要なしで使えるAPIで操作を行います

その代わり、取得するデータも1行だけになります

 Power Automate Desktopでは、JSON形式にてデータを取得し、さらにデータを成型してメッセージで表示します

実際のフローで使用するのは3つのアクションだけになります

使用するAPIは「zipcloud」の郵便番号検索APIになります

ポイント

データの取得

郵便番号検索APIのサイトで示してあるリクエストパラメーターの型式に従って、リクエスト文を指定の箇所に送り、データを取得します

データの変換

取得したデータはJSON形式になっており、人間の目では読みにくい内容になっています

こちらを郵便番号検索APIのサイトで示してあるレスポンスフィールドの階層に従い、人間の読める内容に変換します

リクエストURL及び指定項目

データの取得に使用するURLは以下のURLになります

https://zipcloud.ibsnet.co.jp/api/search

指定項目の中で必須は郵便番号/7桁のみです

試しに上の画像の(例)をそのままブラウザに入力してみます

https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060

*「search」と「zipcode」の間に「?」が入力されている点にご注目ください(検索対象の郵便番号を変える場合には最後の7桁を変更します)

すると、次のように表示されます

今回は上記の画像の「address1/高知県」と「address2/南国市」をメッセージで表示します

実際のフロー

APIを操作するフローは3つのアクションで構成されます

アクション1:Webサービスを呼出します

zipcloudのサイトに掲示されているリクエストURL(https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060)をそのまま使いデータを取得します

使用するアクションは「Webサービスを呼出します」になります

パラメーター:URLの箇所に上記のリクエストURLを入力します

このアクションを動かすと、サイトからJSON形式でデータを取得し、以下の変数にデータを格納します

 下の画像は変数:WebServiceResponseに実際にJSON形式のデータが格納されたところです

アクション2:JSONをカスタムオブジェクトに変換

難しそうなアクション名のアクションですが、要は人間の目では読みにくいJSON形式のデータを読みやすく変換します

上記の画像のようにパラメーター:JSONにはデータが格納されている変数:WebServiceResponseを指定します

このアクションで変換されたデータは変数:JsonAsCustomObjectに格納されます

ここでAPIの取得データ・詳細を確認します

以下の画像はzipcloudの「レスポンス」の画面です

データの階層が2段階に分かれていて、1階層目が「status」「message」「results」の3つなのが分かります

そして2階層目が「results」の下の階層の実際のデータ項目/address1等になっています

ですので、このアクションで変換したデータも同じ構造になっています

上記の画像 はこのアクションで変換した内容を格納した変数:JsonAsCustomObjectの内容です

resutlsの項目の詳細表示をクリックすると次の内容になります

今回取得するのは1行だけですので、1行だけになっています

更に詳細表示をクリックします

次のアクションで上記画像の「address1」と「address2」をメッセージで表示します

アクション3:メッセージを表示

前アクションにて、データをJSON形式から人間の目で見える形に変えて格納した変数:JsonAsCustomObjectから、項目別に抜き出してメッセージを表示します

上記の内容の振り返りになりますが、取得したデータは2階層になっています(一部省略)

・results >>(address1,address2・・・)

上記の階層に対応した形で取得データを「address1」と「address2」に分けて抜き出します

・address1 ➡ %JsonAsCustomObject.results[0].address1%

・address2 ➡ %JsonAsCustomObject.results[0].address2%

実際に上記の2つの内容をアクションに反映したのが次の画像です

以上です➡次回に続く

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

Power Automate Desktop でWEB操作を的確に行うための虎の巻

【RPAでの操作で一番問題となるのは、WEBサイトの操作だと思います。今回はセレクターの編集も含めて、WEB操作の裏技をいくつか紹介します】

 WEBサイトはRPAで操作する機会が多く、しかも「リンクをクリックできない」などの理屈では理解しがたい事も良く起こります

特にPower Automate Desktopの場合には、他のRPAと比べてWEB操作の細かな調整機能は充実しているとは言えません(2022年1月現在)

この記事ではWEBサイトをPower Automate Desktopで操作するための「便利技・裏技」を幾つか紹介していきたいと思います

実際のRPAの作成場面では、様々な技を組み合わせて色々と思考錯誤することになると思います

気を付けて頂きたいのは「完璧主義」に陥らない事です

RPAで100点を狙うのはかなり困難です

それなりのところで、それなりのケリをつけて次の行動に移っていきましょう

 アクション逆引き辞典

待ち処理

これはRPA処理全般の定番です

 RPAは事前に設定された通りに処理を進めていくため、WEBサイト側の操作を待ちきれず、処理の空振りを起こすことがよくあります

待ち処理を入れるアクションはフローコントロールの箇所にあります

待ち秒数は小数点単位でも指定できます

リンクのクリック⇒マウスでホバー+クリック操作

「確かにクリックしているはずなのに・・・」動かないことはよくあります

対処方法として下の画像のように、リンクのクリック処理を「操作対象(UI要素)にマウスを置く」のと同時に「左クリック」を行う操作に置き換えるとうまくいくことがあります

*注意:あくまでリンクのクリック処理がうまく行えるようになる可能性があるということです(必ずうまく行くとは限りません)

セレクタービルダーの編集

WEBサイトは裏ではHTMLコードにより作成されています

このHTMLコードの領域に踏み込んで、WEBサイト内のボタンやリンクを操作するのが今回の主旨です

話の中心になるのは、WEBサイト内のボタンやリンクの場所を表すUI要素の事になります

処理階層の変更

今回は下の画像の箇所をクリックするUI要素について解説します

上記のUI要素を指定すると、アクション内に次のように表示されます

一度設定したUI要素は、Power Automate Desktopの画面右側で編集することができます

上の画像のように画面右のマークをクリックすると、UI要素の編集画面が出てきます

更に表示されたUI要素の右横にあるマークをクリック⇒編集をクリックを2回繰り返します

すると次のようなセレクタービルダー画面が開きます

こちらの画面で、画面左のチェックを変更してみます

上の画像の状態のままだとWEBサイト内の画像の箇所をホバーするイメージです

では、階層の一番下のチェックを外してみます

こうすると、上の画像の「<a>より右の文字列」をホバーします

こうしたセレクタービルダーの階層の変更により、より良くWEB操作をできることがあります

*注意:あくまでリンクのクリック処理がうまく行えるようになる可能性があるということです(必ずうまく行くとは限りません)

カスタム画面 vs ビジュアルエディター画面

セレクタービルダー画面には2種類あります

下の画像はカスタム画面です

上の画像の左下のボタンをオフにすると、ビジュアルエディター画面に変更できます

このビジュアルエディター画面では直接コードを編集することができます

繰返し処理への変数組込/数字指定

UI要素を変えながらクリックしていく場合に、セレクタービルダーに変数を組み込んで繰返し処理を行わせることができます

下のGIF画像では、繰返し処理により「速報」タブ⇒「ライブ」タブとクリックしていっています

上のGIF画像で動かしているフロー内では、UI要素の中に変数を次の画像のように組み入れてあります

上の画像の「%LoopIndex%」はLoop処理アクション内で設定してある変数です

Loopアクションの中で「LoopIndex」は0⇒1⇒2と数字を増やしていきます

同じ様にUI要素に組み込まれた「LoopIndex」も0⇒1⇒2と数字を増やしていきます

同時に指定するUI要素も変更されていくわけですが、この理屈をお話したいと思います

上の画像の「速報」「ライブ」「個人」のタブのUI要素を取得して、ビジュアルエディターの画面内のコードをメモ帳にコピーして並べます

そうすると、規則性が見えてきます

上の画像で言えば「eq()」の中に「数字が動く変数」を組み入れれば、「速報」「ライブ」「個人」のタブのUI要素のコードを表現できることが分かります

繰返し処理への変数組込/文字列指定

上の例でセレクタービルダーで数字が動く変数を組み入れました

文字列でも指定することができます

次の画像の黄色く印を付けた箇所で、それぞれUI要素を取得します

今回は、ビジュアルエディターではなくカスタム画面を開いてみます

すると、3つのUI要素の違いは上の画像の黄色の箇所(IDの箇所)であることが分かります

ですので、今回はIDの箇所に変数を組み入れます

上の画像の変数:myNameを繰返し処理の中で変更する方法ですが、様々な方法があると思います

今回はエクセルを使用した方法を紹介します

エクセルに3つのIDの共通・文字列/ap_以外を入力しておきます

そして、繰返し処理の中でエクセルの1列目([0])を読込、変数に設定します

実際に繰返し処理を動かした様子が下のGIF画像になります

UI要素の名前変更

取得済みのWEB要素を他のアクションで使い回したい時があります

取得したUI要素は一覧の中から選び易いように名前を変更できます

該当のUI要素の上で「F2」キーを押すと、名前を好きな名前に変更できるようになります

*右クリックでも変更できます

UI要素の変更への対応

UI要素は常に固定されているとは限りません

RPAを動かしていると、UI要素の変化に対応する必要な場合があります

下のGIF画像は、テキストを抽出してメッセージを表示するロボットですが、このテキストは常に変更されていくものとします

上のGIF画像で抽出されるテキストは「Excellent仕事術_2022」となっていますが、「仕事術」のテキストはUI要素が変更になった場合も固定で含まれていると仮定します

ビジュアルエディター画面ではこういった場合にそなえて「特定の文字を含む」指定が行えます

次の画像は、上のGIF画像にて「テキストを抽出する際に指定したUI要素」のビジュアルエディター画面です

こちらの黄色く印を付けた箇所を次の画像のように変えると常に「仕事術」のテキストを含むUI要素が扱えるようになります

指定の仕方としては次のようになります

タグの種類名:contains(‘固定テキスト’)

実際に上記の設定でRPAを動かしてみます

サイト内のテキストが「Excellent仕事術_2022⇒仕事術_20220115」のように変わっても正しくテキストを抽出します

この「含む」の指定を行う場合、準備としてサイトの中味のHTMLコードを確認し、タグの種類を取得する必要があります

上の画像でいえば、黄色く印をつけた「p」のことです

確認を行うには、まずはサイト内で必要な場所で右クリックをします

「検証」という文字が見えますのでこちらをクリックします

すると下の画像のような画面が開きます

こちらの画面でサイトの中味を確認することができます

ここで扱いたいテキストの前の<p>に注目してみてください

これがHTMLコードを書くときに必ず出てくる「タグ」というものです

詳細はここでは述べませんが、前述のようにこのタグの種類については事前確認が必要です

例えば、「Excellent仕事術_2022」が「見出し」としてサイト内に表示されているとします

するとタグの種類はpではなくh2になります

タグの種類がh2の場合には、セレクタービルダー内での指定も次の画像のように変わります

上のHTMLコードの内容をもっと深堀しておきたい方はぜひこのサイトから学習をはじめてみてください

このprogateは手を動かしながら学べるサイトになっていて、タグの役割なども分かり易く解説しています

画像認識の活用

画像の許容度を上げる方法

画像をクリックする方法はPower Automate Desktopではとても有効です

ただ画像をクリックする方法はとてもセンシティブです

見た目では分からないような、ちょっとした画像の映り方が変わっただけでもクリックできなくなることもあります

この場合には画像認識の許容度を上げることで対処することができます

マウスを画像に移動します」アクション内に詳細という項目があります

上の画像の左下に「詳細」の項目があります

こちらをクリックすると「許容値」を調整する箇所があります

通常、許容値は10で設定されています

例えば、次の2つの画像の上側の画像を許容値:10のままで設定してクリックできるようにしたとします

仮に同じ設定のまま下の画像をクリックすると認識できずにエラーになります

この場合、許容値を20に上げると画像認識が行えるようになります

*注意:ケースバイケースで活用をお願いします(逆に許容度を下げる方がベターなケースもあります)

画像認識+キー操作

RPAでWEBサイトを扱っていると、どうしてもクリックできないところというところも出てきます

この場合には「画像のクリック」を起点にし、矢印による移動やtabキーを組み合わせることで「思わぬ所」もクリックできるようになります

上のGIF画像では、まずは「インポート・エクスポート」の画像をクリックすることにより、通常は見えないメニューを表示した後、「矢印」で移動を行っています

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

POWER AUTOMATE DESKTOP逆引き辞典~テキスト処理~

Microsoft社の無料RPA・Power Automate Desktopのアクションの中から、テキスト処理のアクションを紹介します

  逆引き辞典に戻る

文字列の切り取り

アクション名:サブテキストの取得

エクセル関数で言えばLEFT関数、もしくは、MID関数と同じ働きをします

下のGIF画像ではダイアログボックスに入力された文字列を左から2文字切り取ります

パラメーターの選択/左から文字を切り取る場合

元のテキスト

切り取り対象になる文字列を設定します

開始インデックス

文字列の先頭から文字の切り取りを行う場合には「テキストの先頭」を指定します

長さ

「文字数」のままで設定

文字数

切り取る文字数の長さを設定します

パラメーターの選択/文字列の途中から文字を切り取る場合

元のテキスト

切り取り対象になる文字列を設定します

開始インデックス

文字列の途中から「指定文字の長さ」を切り取る場合には「文字の位置」を指定します

文字の位置

切り取りを開始する位置を指定します

*文字の位置を指定する場合には、カウントが0からはじまる点に注意してください

長さ

「文字数」のままで設定します

文字数

切り取る文字数を指定します

テキストの置換

アクション名:テキストを置換する

このアクションでは、「t➡T」などの文字列の置換を行います

例えば、下の画像では変数:UserInputに「test」が格納されているとしたら、このアクションにて「TesT」に変換を行っています

パラメーターの選択

解約するテキスト

操作対象のテキストを設定します

検索するテキスト

検索対象のテキストを設定します

(途中省略)

置き換え先のテキスト

検索対象のテキストを置き換える内容を設定します

空白のトリミング

アクション名:テキストのトリミング

このアクションでは、指定したテキストの先頭、もしくは末尾の空白文字を取り除きます

例えば、下の画像では、変数:UserInputに格納したテキスト「    TEXT TEXT」を「TEXT TEXT」に変換します

パラメーターの選択

トリミングするテキスト

対象テキストを設定します

トリミング対象

トリミングの対象は下の画像のように、3つのパターンから選択できます

日付・時間の表示形式の指定

アクション名:dateTimeをテキストに変換

例えば、下の画像のように現在の日時を取得したとします

このアクションでは「現在の日時」を好みに応じた型式に変更することができます

下の画像では、このアクションにより「1/17/2022 1:42:21 PM」をyyyyMM形式の「202201」に表示を変更しています

パラメーターの選択

変換するdatetime

変換する対象(変数など)を設定します

使用する型式

「標準」と「カスタム」から選択できます

標準形式orカスタム型式

標準形式の場合は、下の画像のような形式の中から選択して設定できます

カスタム型式の場合は自身で「yyyyMM」などの型式を入力して設定します

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

POWER AUTOMATE DESKTOP逆引き辞典~フローコントロール~

 Microsoft社の無料RPA・Power Automate Desktopのアクションの中から、フローコントロールのアクションを紹介します 

  逆引き辞典に戻る

待ち処理

アクション名:Wait

アクションの間に「待ち処理」を入れることで、円滑にアクションを実行していけるようにします

下のGIF画像では「おはよう」のメッセージと「こんにちは」の間に「3秒」の待ち処理を行います

パラメーターの選択

待ち秒を指定します

サブフローの実行

 Mainのフロートは別に「サブフロー」を作成することで、フローを部品化し、柔軟で効率的なシナリオ実行を可能にします

サブフローは次のGIFのように追加して作成します

サブフローは、後で「何を別フローにしたか」を思い出しやすいようなフロー名をつけるように心がけましょう

下のGIF画像では、実際に追加したサブフローを実行しています

 Mainのフローで「こんにちは」のメッセージを表示した後、サブフローで「こんばんは」のメッセージを表示しています

パラメーターの選択

サブフローの実行

上の画像の下向きの▼マークをクリックすると、既に追加してあるサブフローを表示できます

表示してあるサブフローの中から実行するものを選択します

ラベル

フローの流れを変えるのにとても便利な機能です

下のGIF画像では、1と2の選択肢があるリストから2を選ぶと、フローの冒頭の「TEST2ラベル」に移動しています

下の画像が上のGIF画像で動いていたシナリオです

2番目の選択ダイアログ・アクションで2を選ぶと”移動先/TEST2に移動する”➡ラベル/TEST2”というようにフローの流れが変わり、再び選択ダイアログ・アクションが起動します

このラベルはエラー処理でも使えるので、覚えておくと便利です

パラメーターの選択

ラベル名

管理しやすい名前を付けましょう!

*英語から設定しはじめ英数字で指定

移動先

移動先のラベルを設定します

選択のパラメーター

ラベルに移動

移動先のラベルを設定します

*うまく設定できない時は、ラベルの位置を一旦変えてみましょう

特定ファイルの待ち処理

こちらは正確にはファイルの処理になります

アクション名:ファイルを待機します

このアクションでは、指定フォルダに特定のファイルが格納(もしくは削除)されるまでフローが停止します

 下のGIF画像では、フローを起動した後にファイルをフォルダに貼り付けると、次のアクションの「メッセージボックスの表示」が起動しています

パラメーターの選択

ファイルの次の状態を待機します

 特定ファイルを指定フォルダに「格納」するのをトリガーにするのか、もしくはフォルダから特定ファイルを「削除」するのをトリガーにするのかを指定します

ファイルパス

トリガーにするファイルを指定します

フローの終了

アクション名:フローの停止

このアクションで都合の良い箇所でフローを終了します

パラメーターの選択

フローの終了

エラーで終了する場合にはエラーメッセージを表示するかを選択できます

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

POWER AUTOMATE DESKTOP逆引き辞典~メール~

 Microsoft社の無料RPA・Power Automate Desktopのアクションの中から、メールのアクションを紹介します

   ➡逆引き辞典に戻る

メールの送信(OFFICE365)

アクション名:メールの送信

メールを事前に指定した宛先と内容で送付します

パラメーターの選択

SMTPサーバー

「smtp.office365.com」で設定します

サーバーポート

587で設定するのがおすすめです

SSLを有効にする

オンで設定します

SMTPサーバーには認証が必要

オンで設定します

ユーザー名・パスワード

OFFICE365へのログイン情報を設定します

以降は「全般」以降のパラメーターの設定になります

 上画像の「全般の右横」に黄色く印を付けた箇所をクリックすると下の画像のように画面が開きます

送信元、送信者の表示名

送信元のメールアドレスと表示名を設定します

送信先、CC、BCC

送信先等のメールアドレスを設定します

件名、本文

メールの件名と本文を設定します

メールの送信(GMAIL)

2点以外はOFFICE365と同じ説明になります

SMTPサーバー

「smtp.gmail.com」で設定します

パスワード

 セキュリティの都合上、Googleのアカウントでパスワードを取得する必要があります

送信元のGoogleアカウント管理画面にて「セキュリティ」をクリックします

 すると、下の画像のように「アプリパスワード」が表示されていますので、こちらをクリックします

 次に開いた画面でパスワードを生成するアプリとデバイスを指定して「生成」をクリックするとパスワードが生成されます

下の画面からパスワードをコピーしてください

コピーしたパスワードはこちらに貼り付けてください

ファイルの添付

アクション「メールの送信」のパラメーターの選択画面にて設定できます

 上の画像の黄色く印を付けた箇所をクリックすると、クリック操作で添付ファイルを設定できます

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

POWER AUTOMATE DESKTOP逆引き辞典~PDF操作~

Microsoft社の無料RPA・Power Automate Desktopのアクションの中から、PDF操作のアクションを紹介します

 逆引き辞典に戻る

PDFファイルから1ページの抽出

アクション名:新しいPDFファイルへのPDFファイルページの抽出

下のGIF画像では3ページが詰まっているPDFファイルから、2ページ目を抽出しています

*➡参考ページ

パラメーターの選択

PDFファイル

抽出するPDFファイルを設定します

ページ選択

抽出するページを設定します

抽出されたPDFファイルのパス

抽出した後のファイルを出力します

ファイルが存在する場合

3種類の方法を選択できます(1.上書き、2.上書きしない、3.連番を付ける)

サンプル

ファイルなどの設定が必要です

複数ファイルを1ファイルに統合

アクション名:PDFファイルを統合

複数PDFファイルを1PDFファイルに統合します

 このアクションを行う場合には、事前に下の画像のように「フォルダー内のファイルを取得」アクションにて複数ファイル名を取得して変数/Filesに格納しておきます

パラメーターの選択

PDFファイル

PDFファイルを指定した変数を設定します

統合されたPDFのパス

作成したPDFファイル名を設定します

ファイルが存在する場合

既にファイルがある場合には「上書き」「上書きしない」「連番を付ける」を設定できます

サンプル

フォルダなどの設定が必要です

POWER AUTOMATE DESKTOP逆引き辞典~ファイル操作~

 Microsoft社の無料RPA・Power Automate Desktopのアクションの中から、ファイルの操作のアクションを紹介します 

逆引き辞典に戻る

ファイルのコピー

指定したフォルダにファイルをコピーします

パラメーターの選択

コピーするファイル

ファイルの指定方法は3つの方法から選択できます

①ファイルをクリック操作で指定する方法

②フォルダをクリック操作で指定した後、ファイル名を手動で入力する方法

③変数で指定する方法

宛先フォルダ

フォルダを手動もしくは、クリック操作で指定します

ファイルが存在する場合

コピー先のフォルダに同名のファイルが既に存在する場合は「上書き」と「何もしない」中から処理を選択できます

サンプル

一部修正が必要です

ファイルの移動

ファイルを指定したフォルダに移動します

パラメーターの選択

移動するファイル

移動するファイルを指定します(詳細はファイルをコピーするを参照してください)

宛先フォルダ

移動先のフォルダを指定します

ファイルが存在する場合

「上書き」するか「何もしない」かを選択します

ファイルの削除

指定したファイルを削除します

パラメーターの選択

削除するファイルを設定します

ファイル名の変更_新ファイル名を手動設定

アクション名:ファイルの名前を変更する

パラメーターの選択

名前を変更するファイル

名前を変更するファイルを設定します

名前の変更の方法

「新しい名前を設定する」を設定します

新しいファイル名

拡張子の指定を含まないファイル名を指定します

拡張子を保持する

オンのままをお勧めします

ファイルが存在する場合

「上書き」するか「何もしない」を選択できます

ファイル名の変更_日時の追加

アクション名:ファイルの名前を変更する

パラメーターの選択

1/2

名前を変更するファイル

名前を変更するファイルを設定します(詳細はファイルをコピーを参照)

名前の変更の方法

「日時を追加する」を設定します

2/2

追加する日時

「現在の日時」を設定します

日時を追加する

日時を追加する位置を既存のファイル名の前にするか後にするかを設定します

区切り記号

既存のファイル名と日時との間をつなぐ記号を設定します

日時型式

デフォルトでは次の設定になっています(年月日)

複数ファイルのファイル名に連番を付ける

アクション名:ファイルの名前を変更する

(例:テスト_1.xlsx ➡ 001_テスト_1.xlsx)

 この処理を行う場合には、事前にフォルダ関連のアクションにて複数のファイル名を取得して変数に格納しておく必要があります(フォルダアクション内でファイルの作成日時等でソートして置く必要があります)

パラメーターの選択

上の画像のように、事前にファイル名を取得して変数に格納/保存しておく必要があります

1/3

名前を変更するファイル

ファイル名を格納した変数を設定します

追加する番号

既存のファイル名を活かす場合にはオンにしておきます(オフにした場合は連番以外に付けるファイル名を指定します)

名前の変更の方法

連番にするを設定します

追加する番号

連番を既存のファイル名の前に付けるか、後に付けるかを設定します

2/3

開始番号

ファイル名につける開始番号を設定します

増分

各ファイルに付ける連番の増分を設定します

区切り記号

既存のファイル名と連番との間に付ける記号を設定します

3/3

パティングを使用します

オンにすると連番を指定桁まで0を詰めます

各番号の最小長

0を詰める場合の桁数を設定します

ファイルが存在する場合

ファイルが存在している場合には「上書き」するか「何もしない」を設定できます

サンプル

フォルダやファイル名等の設定を変更する必要があります

ファイルを待機します

詳細はこちらを参照願います

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ