Power Automate Desktop|Excelファイルの多重起動を防止する方法

同じExcelファイルが多重起動することを防止する方法を解説します。例えば、下図のように「店舗マスタ.xlsx」がすでに起動していてたら、「店舗マスタ.xlsx」が起動しないようにします。

フロー図で表すと下図のようなイメージです。「店舗マスタ.xlsx」が起動しているかどうかチェックして、起動していなかったときだけ「店舗マスタ.xlsx」を起動し、後続の処理を行います。

RPA担当者
RPA担当者

そうそう。このフローを作る方法がわからないんだ。

ちょっと考え方を変えるだけでできるよ。
実際にフローを作ってみよう!

こさい
こさい
この記事を書いた人
この記事を書いた人
こさい
こさい

(株)完全自動化研究所代表のこさいです。

1) エンジニア歴25年超。RPA支援8年超
2) RPA関連の書籍を6冊出版。
3)ご質問・お仕事のご依頼はこちら

Excelファイルの多重起動を防止する方法

Excelファイルの多重起動を防止するには、「店舗マスタ.xlsx」が起動しているかどうかチェックする必要はありません。「店舗マスタ.xlsx」に接続してみてエラーが発生したら、「店舗マスタ.xlsxが起動していない」と判断できるので、起動すればいいというだけです。

RPA担当者
RPA担当者

なんとなくわかったけど、具体的な方法がわかんないな。

じゃ、実際に作ってみようか!

こさい
こさい

Excelファイルの多重起動を防止するフローを作成しよう

準備しよう

「店舗マスタ.xlsx」を「ドキュメントフォルダー\PAD\Data」というフォルダーの中に保存してください。「店舗マスタ.xlsx」は以下のボタンから入手できます。「PAD」「Data」というフォルダーが無い場合は作成してください。

“店舗マスタ.xlsx” をダウンロード 店舗マスタ.xlsx – 357 回のダウンロード – 10.29 KB

「ドキュメントフォルダー\PAD\Data\店舗マスタ.xlsx」というように配置されていることを確認してください。保存できたら、「店舗マスタ.xlsx」を起動して、Excelで開いた状態にしてください。

フローを作成しよう

STEP1 [実行中のExcelに添付]アクションを追加する

アクションペインの[Excel]アクショングループをクリックし、[実行中のExcelに添付]アクションをワークスペースに追加してください

STEP2 [実行中のExcelに添付]アクションを設定する

[実行中のExcelに添付]ダイアログが表示されます。[ドキュメント名]の下矢印をクリックして、ドロップダウンリストの中の[店舗マスタ.xlsx]をクリックしてください。[保存]をクリックしてください

STEP3 [Excelワークシートから読み取る]アクションを追加する

[Excelワークシートから読み取る]アクションを[実行中のExcelに添付]アクションの後に追加してください

STEP4 [Excelワークシートから読み取る]アクションを設定する

[Excelワークシートから読み取る]ダイアログが表示されます。[取得]は[単一セルの値]のままとし、[先頭列]に「C」と入力してください。[先頭行]に「5」と入力して、[保存]をクリックしてください

STEP5 サブフロー[Catch]を作成する

「Catch」という名前のサブフローを作成します。[サブフロー]をクリックして、[新しいサブフロー]をクリックしてください。[サブフローの追加]ダイアログが表示されます。[サブフロー名]に「Catch」と入力し、[保存]をクリックしてください

こさい
こさい

「Catch」というサブフローが追加されたね

STEP6 [特別なフォルダーを取得]アクションを追加する

アクションペインの[フォルダー]アクショングループをクリックし、[特別なフォルダーを取得]アクションをサブフロー[Catch]のワークスペースに追加してください

STEP7 [特別なフォルダーを取得]アクションを設定する

[特別なフォルダーを取得]ダイアログが表示されます。[特別なフォルダーの名前]のドロップダウンリストをクリックし[ドキュメント]を選択してください。[特別なフォルダーのパス]にドキュメントパスが表示されます。このフォルダー名は環境によって異なります。「準備しよう」で「店舗マスタ.xlsx」を保存したドキュメントフォルダーと同じパスであることが大事です。確認出来たら、[保存]をクリックしてください

STEP8 [Excelの起動]アクションを設定する

アクションペインの[Excel]アクショングループをクリックし、[Excelの起動]アクションを[特別なフォルダーを取得]アクションの後に追加してください

STEP9 [Excelの起動]アクションを設定する

[Excelの起動]ダイアログが表示されます。[Excelの起動]のドロップダウンリストをクリックし[次のドキュメントを開く]を選択してください。[ドキュメントパス]に「%SpecialFolderPath%\PAD\Data\店舗マスタ.xlsx」と入力してください

[生成された変数]をクリックしてください。変数名が[ExcelInstance2]となっているので、これを[ExcelInstance]に変更してください。[保存]をクリックしてください

こさい
こさい

これでサブフロー[Catch]のフロー作成が完成!

STEP10 [実行中のExcelに添付]ダイアログを表示する

[Main]フローをクリックしてください。[Main]フローが表示されます。[実行中のExcelに添付]アクションをダブルクリックしてください

STEP11 [実行中のExcelに添付]アクションのエラー設定を行う

[実行中のExcelに添付]ダイアログが表示されるので、[エラー発生時]をクリックしてください

[エラー発生時]画面が表示されます。[詳細]をクリックしてください

[指定されたExcelドキュメントが見つかりません]の[新しいルール]をクリックしてください。表示されたメニューの[サブフローの実行]をクリックしてください

[指定されたExcelドキュメントが見つかりません]の下に[サブフローの実行]が表示されるので、ドロップダウンリストをクリックして、表示される[Catch]をクリックしてください

[サブフローの実行]に[Catch]が指定されていることを確認し、[フロー実行を続行する]をクリックしてください。[例外処理モード]は[次のアクションに移動]のままにして、[保存]をクリックしてください

こさい
こさい

はい。これで完成!
STEPは長かったけど、慣れれば難しくないよ。

フローを実行しよう

フローを実行してください。店舗マスタ.xlsxは開いたままでかまいません。すんなりと終了したでしょう。変数ペインの[ExcelData]を見ると「銀座」と入っていますね。

今度は店舗マスタ.xlsxを閉じてから実行してください。今度は店舗マスタ.xlsxがExcelで開いてから終了したはずです。このように、当初の要件が満たされたフローが完成しました。

「条件分岐するフローだから[IF]アクションを使うんだな」と思わず、「エラー処理を使う」というテクニックを覚えましょう!

RPA担当者
RPA担当者

これで、また1つレベルアップしたゾ!

コメント ログインすると書き込めます