今回は測定された製品のログデータファイルから1台分のシリアルナンバーを検索して試験成績書にプロットする自動化をPower Automate for Desktop(通称PAD)で行ってみます。
必要な元データが別のサーバや別ファイルにあって、これらのデータから何か新たなフォーマットのレポートや分析シートなどにユーザーが自らコピー&ペーストしたり、書き写したりするようなケースはありませんか。結構時間も掛かりますし、面倒ですし、ミスもあったら嫌ですよね。こういった状況で自動でデータを取ってきてくれて、そしてアウトプットするシートに自動で記述してくれるようなことができると大変楽ですよね。
今回はこういった背景をもとに、データを自動で転記してくれるような仕組みの基本をお話したいと思っています。このような考え方を理解できると、いろいろなシーンでExcelのデータやCSV/テキストデータなどの中から、PADが自動で処理してくれる基本動作と作り方が学べます。
今回のテーマ
テーマとなるシチュエーションとして、検査や測定といったモノづくりの大切な作業をイメージした中で、データの検索とデータの抽出、そしてデータのコピー&ペーストを題材としています。ただし、基本的な考え方を身につければ、経理でも製造でも設計でも購買でもどんな部門でも同じような考え方で、データの抽出や別ファイルにコピー&ペーストできる力がつきますので、まずはこのExcel操作の基本からマスターしましょう。

左のデータファイルはサンプルとなりますが、寸法値A~C、電圧値、電流値などの測定データが製品のシリアルナンバー毎に縦にログ的に記録されているデータ列となっています。このデータから、任意の必要とするシリアルナンバーの測定データを抽出して、試験成績書となるレポートに貼り付けるといった作業を自動で行うというものです。
今回は基礎②として、まず1台分のデータを取ってくることとします。別途複数台のデータを一度に取得してくる仕組みは、今回の作成したフローを基に改造していくことで説明していきますので、あわせてご確認いただければと思います。

Excelデータの立ち上げ
では、使用するファイルの設定を行い、ファイルの立ち上げから行っていきましょう。
私が普段、勉強会として講習で使用しているテキストを基にして説明していきます。実際に番号に合わせた説明を基に手を進めていただけたら、自ずと出来上がりますので、あまり難しく考えずに、まずは一緒に作って行きましょう。
試験成績書の呼び出し
ここでは、新しいフロー画面を作成します。前回の「Excelを立ち上げる」で行ったように、試験成績書のフォーマットファイルを呼び出してみましょう。

ここで使うアクションは、まず①左のアクションリストからExcelの欄を選び「Excelの起動」を真ん中のフロー作成画面にドラッグ&ドロップします。

②で「次のドキュメントを開く」を行います。
③ 枠内をクリックして、開きたい試験成績書のファイルを選択します。
④ ファイルボタン📒を押して、ファイルを指定します。このようにすることで、自動で試験成績書のファイルが立ち上がることになります。

この時⑤で、立ち上げたExcelファイルには、ExcelInstance(Excelインスタンス)という変数が設定されます。これは試験成績書ファイルの実体を表す変数(ここではインスタンス=実体という意味)となります。
後にファイルを操作するのに必要な変数で、このPAD内ではファイル名を使うのではなく、このインスタンスという変数を使ってファイルを呼び出しますので、この変数は大変重要ですので覚えておきましょう。
説明の中で、赤文字はフローを作成する上での重要なポイントを示しています。青文字は変数に関するポイントを示していますので、理解の助けにしてみてください。
測定データの呼び出し
同じように、測定データのサンプル「Excelを起動」を使って立ち上げてみましょう。方法は試験成績書の時と同じです。

①で「Excelの起動」を選び、フロー作成画面にドラッグ&ドロップします。


②~④で測定ファイルを指定してあげます。⑤最後に測定ファイルには、ExcelInstance2 という変数が割り当てられ保存されます。
ExcelInstance : 試験成績書のファイルのこと
ExcelInstance2 : 測定ファイルのこと
と言ったように、ファイル名が変数に置き換えられていますので、覚えておきましょう。
データの検索
次は、検索したい測定ファイルの中から、とある必要とするシリアルナンバーをキーワードとして、検索できるような仕組みを作って行きましょう。
キーワードとなるシリアルナンバーの指定

①でメッセージボックスのアクションを開き、「入力ダイアログを表示」をドラッグ&ドロップしてきます。

②と③でタイトルやメッセージを入れる箇所がありますが、こちらは任意の内容を入れて構いません。
ここでは②「製品検索」、③「検索したいシリアルナンバーを入力してください」としています。
④ 既定値の欄は、あくまでわかりやすいようにガイドとして、代表となるシリアルナンバー:ここでは「1010501」と入れておきます。こちらも任意です。
今回の検索は1台分のみを行いますので、
⑤入力の種類は「1行」としておきます。いろいろな設定が可能ですが、今後複数台を同時に扱うときなどは「複数台」などの設定も可能です。
⑥での「入力ダイアログを常に手前に表示」については、この入力画面をあらゆるウィンドウの最上位にて表示できると他のウィンドウに隠れることもなく便利ですので、念のため「ON」にしておくことを推奨します。
⑦で生成された変数には、当初は「UserInput」と名付けられた変数が割り当てられますが、ここでは、「シリアルナンバー」という変数に名前を書き替えます。ダブルクリックで変更できますので、ぜひわかりやすい名前に変えておくと良いでしょう。このように日本語対応で変数も設定できますし、必要な変数が自動で割り当てられ保存されますので、Power Automate for Desktop は初学者でも親しみやすいツールとなっています。
シリアルナンバーの動作確認(テスト)
では一旦、シリアルナンバーのデータがどうなっているかテストして確認してみましょう。

①ひとまずフローを保存💾して、実行ボタン▶を押してみましょう。


2つのExcelが立ち上がった後に、②のように「製品検索」の画面が立ち上がるはずです。ここではデフォルトの値が入っていますので「OK」を押して先に進みます。
この後フローが自動終了していたら正常です。
③フロー作成画面の右側に変数という欄があります。これは「変数ペイン」と呼ばれる変数の一覧表のようなものです。デバッグなどテストで動作させるときに、変数がどのような値を取っているのか確認するのに便利です。今回は、変数「シリアルナンバー」を確認してみましょう。
デフォルト値「1010501」となっていますでしょうか。このように実際の変数の値を確認することもできます。
④2つのExcelのインスタンスも認識され表示されていれば正常終了しています。
改めて復習ですが、こちらの関係性を覚えておきましょう。
ExcelInstance : 試験成績書のファイルのこと
ExcelInstance2 : 測定ファイルのこと
検索アクションの設定
次は、このシリアルナンバーの変数を使って、測定データ内を検索していきます。

Excel内の検索には、①アクションExcel内の「詳細」を押します。するとExcelの細かい設定アクションが新たにリストされますが、その中の「Excelワークシート内のセルを検索して置換する」をドラッグ&ドロップしてきます。そして設定画面が現れます。


② 最初のExcelインスタンスには、今回測定データファイルを検索しますので、こちらのインスタンスである、変数 %ExcelInstance2%を選びます。
③検索モードはそのままの「検索」としておきます。
④検索するテキストの欄は、枠内をクリックして、変数{X}を呼び出します。変数のリストが縦に並んで表示されます。
⑤「シリアルナンバー」を選び、ダブルクリックして選択します。枠内には「%シリアルナンバー%」とプロットされているはずです。
変数を使用する時には、%変数名%と前後に「%」をつける必要があります。
これは「値が変化する」ことをPADが認識するための「ラベル」と考えておいてください。
これを付けないと、ただのテキスト文字として扱われるので注意しておきましょう。
この設定画面の下に、⑥生成された変数が2つ保管されます。この2つは検索されたセルの位置を示すものです。つまり、変数「シリアルナンバー」はこのセルの位置にて見つかっていることを示すものとなります。
(エラーの場合はどちらも「0」が入っていることとなりますので注意)
・FoundColumnIndex: 検索された列の値が格納されます。
・FoundRowIndex: 検索された行の値が格納されます。
変数名を自由に変えることもできますが、ここではそのままにして、これらの変数の動作がどのようになっているのかテストしてみましょう。
検索機能の確認(テスト)
検索アクションで設定した機能が、指定したシリアルナンバーを検索して、そのセル座標を示しているかチェックしてみましょう。このように正しく動いているかを少しずつ動かしてみることで、実際の動きを確認することができますし、フローの動作状況の理解も深まりますので、ある程度のアクションが組みあがったら都度チェックしてみることをお勧めします。


①同じように💾を行い、実行「▶」を押してみましょう。②シリアルナンバーまでの入力はこれまでと同じですが、フロー終了後の変数の値を見てみましょう。検索結果の2つの変数


・FoundColomnIndex: (列の値)=1 (これはA列のこと)
・FoundRowIndex: (行の値)=7 (7行目のこと)
のように、測定データにあるシリアルナンバーのデータを確認しつつ、正しい列と行が入っていればOKです。
他のシリアルナンバーも同じように数か所チェックすることが良いでしょう。
次はこのエクセル座標を使って、データを抽出します。
データの抽出
データの抽出には、① Excelアクションの中の「Excelワークシートから読み取る」というアクションをドラッグ&ドロップしてきます。



② Excelインスタンスは、先ほどと同様の変数「%ExcelInstance2%」を選びます。
③ 取得の欄は、今回5つの測定データを丸ごと抽出しますので、「セル範囲の値」を▽を押して選択します。

④ 取得範囲となる先頭列は、測定データのフォーマットから、1列増加した列に測定値データが入っていますので、{X}で%FoundColumnIndex%をダブルクリックした後、%-%内の変数に「+1」を手入力します。
先頭列:%FoundColumnIndex+1% (すべて半角)
⑤ 先頭行も一段下から測定値が始まりますので、同じような考え方で%FoundRowIndex%に「+1」します。
先頭行:%FoundRowIndex+1% (すべて半角)
⑥ 最終列は、④と同じ列ですので、同様に
最終列:%FoundColumnIndex+1% (すべて半角)
⑦ 最終行は、データ5コ分(+1から+5)のデータを取ってきますので、%FoundRowIndex%に「+5」します。
最終行:%FoundRowIndex+5% (すべて半角)
このように、変数の%-%の中には計算式も入れることができ、計算値を含めて変動する値=変数として取り扱うことができます(計算式は半角にすることを注意しましょう)。
最後に⑧ 取得したデータは、変数 ExcelData に保管されます。この変数は後でデータの記述に使います。
データのプロット
測定値のプロット
これまでのフロー作成で、データの抽出を変数ExcelDataに格納できましたので、ここからはそれを使って、成績書への貼り付けを行ってみましょう。

① アクションのExcelを開き、「Excelワークシートに書き込む」をドラッグ&ドロップします。
② Excelインスタンスは、今回は試験成績書側に書き込むので、変数%ExcelInstance%を▽にて選択します。


③ 書き込む値は、先ほど取得してきたデータである 変数%ExcelData% を{X}をクリックして、変数リストからダブルクリックして呼び出します。

④ 書き込みモードは、成績書の「指定したセル上」とすることで1台目の決められた場所に貼り付けることとします。
⑤ 成績書に書き込む座標は、成績書のセルフォーマットからC列6行目であるので、手入力して指定します。
シリアルナンバーのプロット
最後に、シリアルナンバーも○○台目のセルに識別できるように上書きしてみましょう。
なお、考え方は測定値のプロットと同じです。

① アクションのExcelを開き、「Excelワークシートに書き込む」をドラッグ&ドロップします。
② Excelインスタンスは、今回も試験成績書側に書き込むので、変数%ExcelInstance%を▽にて選択します。


③ 書き込む値は、先ほど取得してきたデータである 変数%シリアルナンバー% を{X}をクリックして、変数リストからダブルクリックして呼び出します。

④ 書き込みモードは、成績書の「指定したセル上」とすることで1台目の決められた場所に貼り付けることとします。
⑤ 成績書に書き込む座標は、成績書のセルフォーマットから今度はC列5行目であるので、手入力して指定します。
これで、1台分のデータを抽出してくれるフローは完成です。お疲れさまでした!
テストランしてみよう
フローの完成にともない、正常に動いているか確認してみましょう。

① 一旦セーブ💾して、実行「▶」してみましょう

② 製品検索画面にて、いろいろなシリアルナンバーを入れてみて正しくコピー&ペーストできているか確認します。ここでは、テストとして「1010502」を入れてみます。

エラーも出ず、正しく試験成績書に対象のシリアルナンバーの測定データが入ればOKです。
今回は、1台分のみのデータ抽出でしたが、必要な台数分はループをかけるテクニックを使うことで、繰り返し作業を自動化できます。これができると作業効率化は飛躍的にアップします。
まとめ
今回はPower Automate for Desktop の基本動作であるExcelデータのコピー&ペーストについて学びました。
① 今回は測定ログデータから試験成績書などへの転記テクニックを学びました
② 指定したシリアルナンバーにより、測定ログデータ内を検索する方法を学びました
③ Excelファイルはインスタンスという概念でファイル内の操作ができます
④ 取得するデータは変数によって自在に取り扱うことができます
⑤ データを抽出する方法(Excelの読み取り)を学びました
⑥ データのプロット(Excelへの書き込み)を学びました
今回は、1台分のみのデータしか取り扱っていませんが、ループという機能を使って複数のデータを検索して抽出してくることも可能です。(一台ずつ読み書きする手もありますがフローが長くなってしまうので、この機能は別の機会で実験してみましょう)

この基本的な考え方によって、Excelのデータ操作の方法が身についたので、様々な応用ができることになります。今後は、ループを使って少しスマートな方法で効率よくフローを動かす改造と工夫を学習していきます。
それではまた!


