Power Automateでバックアップアプリをつくる:Excelファイルも編集
●
次のチュートリアルは「バックアップアプリ」
前回までは、Microsoftの次のチュートリアルを参考に、入力した日付を別のフォーマットに変換するアプリケーションを作成した。数ステップの作業でGUIアプリケーションが作成できることを体験できたと思う。
Create a simple flow - Learn | Microsoft Docs
チュートリアルの説明だけではちょっと足りなかったので、変数と例外について追加で説明し、いくらか処理をカスタマイズしたアプリケーションに書き換えた。単純なアプリケーションとしてはこの辺りで十分だろう。チュートリアルを次のステップに進めたいと思う。
次のチュートリアルは、次のドキュメントだ。
Exercise - Create and run a simple flow - Learn | Microsoft Docs
このチュートリアルでは指定したフォルダのバックアップを取り、その作業をMicrosoft Excelファイルにログとして記録する、といったことを行っている。フォルダのバックアップとしても、それはフォルダごとコピーするだけなので、それほど難しい処理ではない。
ここで注目したいのは、Microsoft Excelを起動してスプレッドシートに文字列を書き込むという作業がいともたやすく実現されていることを体験することだ。現在主流のプログラミング言語で同じことをしようとしても、ここまで簡単にはいかない。今回はその辺りまで体験できればOKだ。
なお、Power AutomateからMicrosoft Excelを起動しているため、Microsoft Excelが利用できる状況になっている必要がある。この部分はPower Automateからはどうにもならないので、事前に準備しておこう。
「フォルダバックアップ」フローを作成
早速チュートリアルを見ながら演習を開始しよう。Power Automateを起動して、「新しいフロー」を選択する。
Power Automate:「新しいフロー」
フロー名に「フォルダバックアップ」と入力してから「作成」を選択する。
Power Automate:フロー名「フォルダバックアップ」→「作成」
これで基本となるフローの作成は完了だ。
メインアクションを組み立てていく
次に、アクションを組み立てていく。このチュートリアルでは最初にフォルダを選択するダイアログを選択させ、あとはアプリケーション内で指定したフォルダへ自動的にコピーするという手順を踏んでいる。このため、最初に追加するのはフォルダを選択するアクションだ。
検索に「ダイアログ」と入れ、表示される候補から「フォルダーの選択ダイアログを表示」を選択する。
検索「ダイアログ」→「フォルダーの選択ダイアログを表示」
ダイアログの説明に「バックアップするフォルダを選択してください」といったメッセージを入力して「保存」を選択する。処理フォルダを設定したければここで設定しておけばよい。
ダイアログの説明「バックアップするフォルダを選択してください」→「保存」
前々回やったように、ここで『生成された変数』に注目しておこう。このダイアログで選択したフォルダはSelectedFolderに入るはずだ。後のアクションで%SelectedFolder%を指定するときがくるはずだ。
次は選択したフォルダーをコピーするアクションを追加したいので、検索「コピー」から「フォルダーをコピー」を選択する。
検索「コピー」→「フォルダーをコピー」
コピーするフォルダに先ほどのダイアログで選択した%SelectedFolder%を入力し、宛先フォルダを選択する。フォルダーが存在する場合のアクションは好みのものを選んでおけばよい。ただし、宛先フォルダは実際に存在するフォルダを選択する必要がある。先にフォルダを作っておく。
コピーするフォルダー「%SelectedFolder%」→宛先フォルダ→既存のコピー先に使うフォルダ→フォルダーが存在する場合→好みの動作→「保存」
バックアップアプリケーションとしての動作はここまでが本質だ。
●
アクションの続き:Microsoft Excelの起動とスプレッドシードの編集
チュートリアルでは、ここからさらにMicrosoft Excelを起動してスプレッドシートファイルにバックアップを作成したというログを書き込むという処理を行っている。これがデスクトップでPower Automateを使う醍醐味というか、美味しいところだ。
「Excel」で検索して「Excelの起動」を選択する。
検索「Excel」→「Excel」の起動
Excel起動時の動作として「次のドキュメントを開く」を選択し、「ドキュメントパス」にログを書き込むMicrosoft Excelファイルを指定する。このファイルは最初から存在している必要がある。この段階でMicrosoft Excelを起動して空のファイルを作成して保存しておけばオッケーだ。そのファイルを指し示すように「ドキュメントパス」を設定すればよい。最後に「保存」を選択する。
「Excelの起動」→「次のドキュメントを開く」→「ドキュメントパス」→既存のMicrosoft Excelファイル→「保存」
ここで生成される変数は%ExcelInstance%
スプレッドシートファイルを開いた状態になっているので、ここから編集に入っていく。アクションとして「Excelワークシートから最初の空の列や行を取得」を選択する。
検索「Excel」→「Excelワークシートから最初の空の列や行を取得」
(プログラミング言語の経験があるなら、この操作はワークシートのオブジェクトを取得して、そこから最初の空行のオブジェクトを取得する、といった操作に相当していることなんかがわかると思うが)とりあえず、このような手順を踏んで操作するものだと思っておけばよいと思う。
「Excelインスタンス」に先ほど生成された「%ExcelInstance%」を設定してから「保存」を選択する。
「Excelインスタンス」→「%ExcelInstance%」→「保存」
ログデータには基本的に作業を行った時点の日時データが記録される。ここでもそのデータを記録したいので、ここで現在日時を取得する。「日時」で検索して「現在の日時を取得します」を選択する。
検索「日時」→「現在の日時を取得します」
取得「現在の時刻」、タイムゾーン「システムタイムゾーン」の設定のまま「保存」を選択する。
「取得」→「現在の時刻」→「タイムゾーン」→「システムタイムゾーン」→「保存」
行にデータを書き込みたいので、「Excel」で検索して「Excelワークシートに書き込み」を選択する。
検索「Excel」→「Excelワークシートに書き込み」
次のスクリーンショットのように設定してから「保存」を押す。空の1行目1列目に選択したフォルダパス(%SelectedFolder%)を書き込むというアクションになる。
空の1行目1列目にフォルダパスを書き込む
同じ要領で「Excelワークシートに書き込み」を用意し、今度は空の1行目2列目に現在時刻を書き込むアクションを作成する。
空の1行目2列目に現在時刻を書き込む
これでログの記録は完了だ。最後にスプレッドシートファイルを保存してMicrosoft Excelを閉じたい。
アクションを「Excel」で検索して「Excelを閉じる」を選択する。
検索「Excel」→「Excelを閉じる」
ログデータを保存したいので「Excelを閉じる前」は「ドキュメントを保存」に設定してから「保存」を押す。
Excelを閉じる前にドキュメントを保存するようにする
これでフォルダバックアップアプリケーションの作成は完了だ。
フォルダバックアップアプリケーションの作成完了
このあたりで一旦フローを保存しておこう。
フォルダバックアップアプリを実行してみよう
さっそく開発したアプリケーションを実行してみよう。Power Automateから実行すると、次のようにフォルダを選択するダイアログが起動してくる。
バックアップしたいフォルダを選択する
フォルダを選択して「OK」ボタンを押す。処理としてはこれで完了だ。自動的にフォルダのコピーが行われ、自動的にMicrosoft Excelが起動してきてログの書き込みが行われる。
実際に選択したフォルダのバックアップがとられているのか確認すると、次のようにコピーされていることを確認できる。
フォルダごとバックアップされていることを確認
ログファイルを開いてみると、次のようにログデータが書き込まれていることも確認できる。
ログデータが書き込まれていることも確認
慣れてくればこのアプリケーションを作成するのにかかる時間は数分といったところだ。いろいろ例外処理や分岐処理とか入れていくともっと長い時間がかかるが、本質的な処理だけであればかなり短い時間で開発を行うことができるわけだ。
Microsoft Excelの操作ができると夢が広がる
多くのビジネスマンにとってMicrosoft Excelは重要なポジションを占めている。あの面倒な仕事が自動化できればどれだけ楽になるか考えたことは一度はあるだろう。Power Automateを使うとそれがかなり現実的な形でやってくることがわかると思う。手動で行う作業をPower Automateで自動化できれば、少なくとも単純な仕事はサクッと終わらせることができるようになる。
チュートリアルを進めて代表的な使い方がわかってくれば、Power Automateを使ってどのような仕事を自動化できるのかわかってきて、将来的にどういった楽ができるようになるか夢が広がっていくはずだ。
○参考
Introduction to Power Automate for desktop - Power Automate | Microsoft Docs
Browse all - Learn | Microsoft Docs
Power Automate Desktop - Power Platform Community
Product updates | Power Automate Blog
次のチュートリアルは「バックアップアプリ」
前回までは、Microsoftの次のチュートリアルを参考に、入力した日付を別のフォーマットに変換するアプリケーションを作成した。数ステップの作業でGUIアプリケーションが作成できることを体験できたと思う。
Create a simple flow - Learn | Microsoft Docs
チュートリアルの説明だけではちょっと足りなかったので、変数と例外について追加で説明し、いくらか処理をカスタマイズしたアプリケーションに書き換えた。単純なアプリケーションとしてはこの辺りで十分だろう。チュートリアルを次のステップに進めたいと思う。
Exercise - Create and run a simple flow - Learn | Microsoft Docs
このチュートリアルでは指定したフォルダのバックアップを取り、その作業をMicrosoft Excelファイルにログとして記録する、といったことを行っている。フォルダのバックアップとしても、それはフォルダごとコピーするだけなので、それほど難しい処理ではない。
ここで注目したいのは、Microsoft Excelを起動してスプレッドシートに文字列を書き込むという作業がいともたやすく実現されていることを体験することだ。現在主流のプログラミング言語で同じことをしようとしても、ここまで簡単にはいかない。今回はその辺りまで体験できればOKだ。
なお、Power AutomateからMicrosoft Excelを起動しているため、Microsoft Excelが利用できる状況になっている必要がある。この部分はPower Automateからはどうにもならないので、事前に準備しておこう。
「フォルダバックアップ」フローを作成
早速チュートリアルを見ながら演習を開始しよう。Power Automateを起動して、「新しいフロー」を選択する。
Power Automate:「新しいフロー」
フロー名に「フォルダバックアップ」と入力してから「作成」を選択する。
Power Automate:フロー名「フォルダバックアップ」→「作成」
これで基本となるフローの作成は完了だ。
メインアクションを組み立てていく
次に、アクションを組み立てていく。このチュートリアルでは最初にフォルダを選択するダイアログを選択させ、あとはアプリケーション内で指定したフォルダへ自動的にコピーするという手順を踏んでいる。このため、最初に追加するのはフォルダを選択するアクションだ。
検索に「ダイアログ」と入れ、表示される候補から「フォルダーの選択ダイアログを表示」を選択する。
検索「ダイアログ」→「フォルダーの選択ダイアログを表示」
ダイアログの説明に「バックアップするフォルダを選択してください」といったメッセージを入力して「保存」を選択する。処理フォルダを設定したければここで設定しておけばよい。
ダイアログの説明「バックアップするフォルダを選択してください」→「保存」
前々回やったように、ここで『生成された変数』に注目しておこう。このダイアログで選択したフォルダはSelectedFolderに入るはずだ。後のアクションで%SelectedFolder%を指定するときがくるはずだ。
次は選択したフォルダーをコピーするアクションを追加したいので、検索「コピー」から「フォルダーをコピー」を選択する。
検索「コピー」→「フォルダーをコピー」
コピーするフォルダに先ほどのダイアログで選択した%SelectedFolder%を入力し、宛先フォルダを選択する。フォルダーが存在する場合のアクションは好みのものを選んでおけばよい。ただし、宛先フォルダは実際に存在するフォルダを選択する必要がある。先にフォルダを作っておく。
コピーするフォルダー「%SelectedFolder%」→宛先フォルダ→既存のコピー先に使うフォルダ→フォルダーが存在する場合→好みの動作→「保存」
バックアップアプリケーションとしての動作はここまでが本質だ。
●
アクションの続き:Microsoft Excelの起動とスプレッドシードの編集
チュートリアルでは、ここからさらにMicrosoft Excelを起動してスプレッドシートファイルにバックアップを作成したというログを書き込むという処理を行っている。これがデスクトップでPower Automateを使う醍醐味というか、美味しいところだ。
「Excel」で検索して「Excelの起動」を選択する。
検索「Excel」→「Excel」の起動
Excel起動時の動作として「次のドキュメントを開く」を選択し、「ドキュメントパス」にログを書き込むMicrosoft Excelファイルを指定する。このファイルは最初から存在している必要がある。この段階でMicrosoft Excelを起動して空のファイルを作成して保存しておけばオッケーだ。そのファイルを指し示すように「ドキュメントパス」を設定すればよい。最後に「保存」を選択する。
「Excelの起動」→「次のドキュメントを開く」→「ドキュメントパス」→既存のMicrosoft Excelファイル→「保存」
ここで生成される変数は%ExcelInstance%
スプレッドシートファイルを開いた状態になっているので、ここから編集に入っていく。アクションとして「Excelワークシートから最初の空の列や行を取得」を選択する。
検索「Excel」→「Excelワークシートから最初の空の列や行を取得」
(プログラミング言語の経験があるなら、この操作はワークシートのオブジェクトを取得して、そこから最初の空行のオブジェクトを取得する、といった操作に相当していることなんかがわかると思うが)とりあえず、このような手順を踏んで操作するものだと思っておけばよいと思う。
「Excelインスタンス」に先ほど生成された「%ExcelInstance%」を設定してから「保存」を選択する。
「Excelインスタンス」→「%ExcelInstance%」→「保存」
ログデータには基本的に作業を行った時点の日時データが記録される。ここでもそのデータを記録したいので、ここで現在日時を取得する。「日時」で検索して「現在の日時を取得します」を選択する。
検索「日時」→「現在の日時を取得します」
取得「現在の時刻」、タイムゾーン「システムタイムゾーン」の設定のまま「保存」を選択する。
「取得」→「現在の時刻」→「タイムゾーン」→「システムタイムゾーン」→「保存」
行にデータを書き込みたいので、「Excel」で検索して「Excelワークシートに書き込み」を選択する。
検索「Excel」→「Excelワークシートに書き込み」
次のスクリーンショットのように設定してから「保存」を押す。空の1行目1列目に選択したフォルダパス(%SelectedFolder%)を書き込むというアクションになる。
空の1行目1列目にフォルダパスを書き込む
同じ要領で「Excelワークシートに書き込み」を用意し、今度は空の1行目2列目に現在時刻を書き込むアクションを作成する。
空の1行目2列目に現在時刻を書き込む
これでログの記録は完了だ。最後にスプレッドシートファイルを保存してMicrosoft Excelを閉じたい。
アクションを「Excel」で検索して「Excelを閉じる」を選択する。
検索「Excel」→「Excelを閉じる」
ログデータを保存したいので「Excelを閉じる前」は「ドキュメントを保存」に設定してから「保存」を押す。
Excelを閉じる前にドキュメントを保存するようにする
これでフォルダバックアップアプリケーションの作成は完了だ。
フォルダバックアップアプリケーションの作成完了
このあたりで一旦フローを保存しておこう。
フォルダバックアップアプリを実行してみよう
さっそく開発したアプリケーションを実行してみよう。Power Automateから実行すると、次のようにフォルダを選択するダイアログが起動してくる。
バックアップしたいフォルダを選択する
フォルダを選択して「OK」ボタンを押す。処理としてはこれで完了だ。自動的にフォルダのコピーが行われ、自動的にMicrosoft Excelが起動してきてログの書き込みが行われる。
実際に選択したフォルダのバックアップがとられているのか確認すると、次のようにコピーされていることを確認できる。
フォルダごとバックアップされていることを確認
ログファイルを開いてみると、次のようにログデータが書き込まれていることも確認できる。
ログデータが書き込まれていることも確認
慣れてくればこのアプリケーションを作成するのにかかる時間は数分といったところだ。いろいろ例外処理や分岐処理とか入れていくともっと長い時間がかかるが、本質的な処理だけであればかなり短い時間で開発を行うことができるわけだ。
Microsoft Excelの操作ができると夢が広がる
多くのビジネスマンにとってMicrosoft Excelは重要なポジションを占めている。あの面倒な仕事が自動化できればどれだけ楽になるか考えたことは一度はあるだろう。Power Automateを使うとそれがかなり現実的な形でやってくることがわかると思う。手動で行う作業をPower Automateで自動化できれば、少なくとも単純な仕事はサクッと終わらせることができるようになる。
チュートリアルを進めて代表的な使い方がわかってくれば、Power Automateを使ってどのような仕事を自動化できるのかわかってきて、将来的にどういった楽ができるようになるか夢が広がっていくはずだ。
○参考
Introduction to Power Automate for desktop - Power Automate | Microsoft Docs
Browse all - Learn | Microsoft Docs
Power Automate Desktop - Power Platform Community
Product updates | Power Automate Blog