【初心者向け】Microsoft RPA Power Automate Desktop Excel セル範囲の取得② 保守性向上

Power Automate Desktop RPA

RPA_PowerAutomateDesktop_セル範囲の取得②_保守性向上

こんにちは!!Apachanです。
今回は、前回Power Automate Desktopを使って作成した「Excelファイルからのデータ取得」フローの改修を行います。実際に業務利用することを考えると改修をした方が良いポイントがいくつかあります。

「止まってばかり」では業務利用することは困難となるため、今回は「安定して動かす」ための観点でフローを改修していきます。

目次

1.前提
– 改修するフロー
– アクションの使い方
2.身につくこと
– 業務利用する際の注意ポイント
3.業務変動幅の予測
– 利用ファイルのデータ範囲の変動
– Excelファイルの最初の空白行(列)の取得
– 最終行(列)を固定値から変動値へ変更
– アクションの無効化と変数の確認方法
4.シンプルなフローの作り
– 不要な変数の削除
– Excelを閉じる処理
– データ範囲の項目名
5.まとめ

Microsoft Power Automate かんたん活用ガイド 自動化ツールの大本命! [ 日経パソコン ]

価格:2,200円
(2021/10/12 23:26時点)
感想(0件)

前提

まずは作着前の前提から確認していきます。

改修するフロー

今回は前回のブログで紹介(作成)したフローを対象に改修を進めていきます。
前回の記事は以下リンクを確認してください。

アクションの使い方

フローを作成する際のアクションの基本的な使い方は理解している前提で進めます。
前回のブログでも紹介しているためこちらも合わせて確認してください。

身につくこと

業務利用する際の注意ポイント

以下2点実例と共に注意すべきポイントということで進めていきます。

  • 業務変動幅の予測
    予測できる業務の変動は事前にフローに盛り込むべきです。なぜならば、業務変更が発生する度に、フローを改修するのはあまりに非効率だからです。実務担当者にヒアリングすれば、業務の変更頻度や変更度合いなど、ある程度予測できるケースもあります。
  • シンプルなフローの作り
    フローは業務上の関係者と共有することもあるので、なるべくシンプルで分かりやすくする必要があります。
    フローが複雑で分かりずらい場合は、未来の自分が見ても分からないことさえあります。

業務変動幅の予測

利用ファイルのデータ範囲の変動

よくあるケースですが、取得するデータが増減することは考慮しなければならないポイントです。
今回利用するデータは下図のようなものとなっていますが、少なくとも行数は増減する前提で作り込んだ方がいいでしょう。
列も定期的に変わる可能性があるため、この最終行/列の2つの要素は変動値の方が安全と言えます。

取得データの変動

変更すべき箇所はデータ範囲を取得する以下の「Excel ワークシートから読み取り」のアクションとなります。
以下手順で「Excel ワークシークから読み取り」の編集画面を表示させましょう。

Excelワークシートから読み取りの編集

修正箇所は下図の通りとなります。最終列/行を固定値から変動値に変える必要があります。

固定値の修正

Excelファイルの最初の空白行(列)の取得

Power Automate Desktop には、(Excelのシート内の)最初の空の列や行を取得するアクションが用意されております。
このアクションを利用すれば、変動するデータであっても有効な範囲を取得することが可能です。
下図のように「Excelの起動」後にドラッグ&ドロップしてください。

「Excelワークシートから最初の空の列や行を取得」アクションを利用

処理に成功すると下図のような設定画面が起動します。
ここで特に何かを編集する必要はありませんが、下図のように最初の空の列と行の変数が新しく生成されます。
この内容のみ確認して、保存ボタンを押下すればOKです。

最初の空の列/行の変数生成

最終行(列)を固定値から変動値へ変更

最初の空の列/行の変数が作成できましたので、問題となっている最終行/列を固定値から変動値へ変更します。
「Excel ワークシートから読み取り」アクションの編集画面を起動します。
下図を参考に最終列/行の各項目より変数を呼び出します。

変数の呼び出し

前工程で作成した「最初の空の列/行」の変数が選択できるようになっています。
各項目より該当する変数を選択してあげてください。

最初の空の列/行の選択

最初の空の列/行から1つ差し引いたものが、値が入っている最終の列/行となります
ポイントとしては%~%の中で減算処理が可能なことです。

最終列/行の設定

 

Power Automate Desktopの変数については以下リンクを参考にしてください。

アクションの無効化と変数の確認方法

最初の空の列/行に該当するFirstFreeColumnとFirstFreeRowに適切な値が入っているかどうか確認してみます。
バグの防止につながるため、変数の値が適切かどうか確認しながら開発を進めていくことは非常に重要です。
今回は関係のないアクション(リスト)を無効にしてから、変数に格納される値を確認してみます。

無効にする4つのリストをCtrlを押下しながら左クリックで選択してください。

無効化対象リストを選択

4つ選択した後は、Ctrlを押下した状態のまま右クリックをして「無効にする」を選択してください。

「無効にする」を有効化

下図のように選択したリストが半透明になります。これは実行されないリスト、すなわち無効となったことを意味します。

無効化の反映

この状態でフローを実行するとフロー変数のFirstFreeColumnFirstFreeRowに格納される値を確認することができるようになります。
アクション単体の挙動の確認方法は他にもありますが、また別の機会に紹介していきます。

フロー実行後に変数に格納される値の確認

シンプルなフローの作り

不要な変数の削除

フローを作成する上でシンプルな作りとするためにいくつか改修を進めていきます。
まずは始めは不要な変数の削除となります。変数はとても便利ですが、不要なものも残しておくと混乱の原因になりかねません。
今回のフローでは、メッセージボックスで押されたボタンが変数に格納されますが、実際のところ使うことはありません。

メッセージボックス

下図参考に押されたボタン情報を格納する変数はButtonPressedとなります。
この変数を生成しない設定に変更するため、「メッセージを表示」アクションの編集をします。

変数が生成されるアクションと生成される変数名

「メッセージを表示」アクションの編集画面となります。
画面下部の「生成された変数」をクリックすると、無効にすることができます。
変更を加えた後は必ず保存ボタンを押下してください。

変数を生成しない設定

処理に成功するとフロー変数からButtonPressedがなくなっていることが分かります。
今回のフローは練習用のものなのであまり大きな影響は感じられないかも知れませんが、変数が数百規模になるとこのような地道な作業が保守性を向上させるひとつの取り組みになります。

変数が生成しない反映

Excelを閉じる処理

フローを実行すると実は処理対象のExcelが開いたままなので、「Excelを閉じる」アクションを入れましょう。
Excelが空いたままでは予期せぬ編集が発生する可能性があり、編集内容を上書き保存してしまうこともあるため、終わった後は対象のExcelを閉じるに越したことはありません。
下図のようにまずは「Excelを閉じる」アクションを設定するところから入ります。

「Excelを閉じる」アクションの追加

処理に成功すると下図のような設定画面が起動します。
ここでのポイントは閉じるべきExcelインスタンスが入っているかどうか確認してください。
また、閉じる前に保存が必要かどうかも確認しましょう。

「Excelを閉じる」アクションの設定値の確認

設定が完了すると、下図のように反映します。

「Excelを閉じる」アクションの反映

データ範囲の項目名

データの開始行もPower Automate Deskのアクションの標準機能で代替えすることが可能です。
「Excel ワークシートから読み取り」の編集画面を起動します。
下図はデータが2行目開始からと設定されていますが、ここを直していきます。

データは2行目から有効

「詳細」をクリックすると最初の行に列名を含むかどうかの選択ボタンがあります。ここを有効にすれば、先頭行は1行目からで問題ありません。
些細なことですが、先頭行は一律で一行目に設定しておき、列名を含むかどうかはこの詳細より設定した方シンプルかも知れません。

項目名有無の選択

まとめ

今回は外部の動作を変えずにより安定的に動作したりメンテンナスができるようにフロー内部の整理を行いました。
このようなことをリファクタリングを呼ぶこともあります。実際の業務現場では細かくルールを決めて運用することもあります。

Apachan

約10年間の代理店営業を経験した後にITに興味を持ちプログラミングを習得。営業で培ったコミュニケーション力を活かしつつ、様々な現場の業務改善に日々奮闘中。
RPAに限らず、SaaSやGAS, VBAなど手段はクライアントの方と考えながら進めます。
RPAやプログラミング関連の書籍も執筆しました。
お仕事のご相談などお気軽にtwitterDMまでご連絡ください。

関連記事