Excelファイルを自動で新規作成する処理を追加する
●
バックアップアプリを作るチュートリアル
本連載では、今のところMicrosoftが提供する次のチュートリアルを進めながらPower Automateの使い方を学んでいる。このチュートリアルはフォルダのコピーを主機能としたバックアップアプリを作るというものだ。その過程で作業内容をMicrosoft Excelにログデータとして記録するという処理が入っており、むしろこちらのほうがサンプルとしては面白い内容になっている。
Exercise - Create and run a simple flow - Learn | Microsoft Docs
前回はExcelにログデータを書き込む部分に手を加えて、ほかのデータも記録するように変更してみた。今回はこの作業を一旦もとに戻して、別のExcelに関する別の操作を追加する。
Microsoft Excelファイルの新規作成
チュートリアルのバックアップアプリでは、ログを書き込むExcelファイルを「開く」という操作で作成している。やってみるとわかるが、指定したファイルがない状態で「開く」処理を行うとエラーになる。ファイルがないからエラーになるわけで、プログラムとしては適切に動作している。
しかし、使ってみるとわかると思うが、この動作はかなり手間がかかる。ログファイルはできれば自動的に作成してほしいわけで、ファイルがない場合は「開く」操作ではなく「新規作成」の動作をしてほしい。しかし、Power Automateに用意されている「Excel の起動」というアクションには、ファイルの新規作成のオプションは用意されていない。
ではどうするかといえば、Power Automateに用意されているアクションを組み合わせて、「新規作成」と同じ結果になるようにする。具体的には現在の「Excel の起動」アクションの前に、次のアクションを追加すればよい(ほかにもやり方はいろいろあるが、説明しやすいので今回はこのやり方で)。
要するに、ログの書き込み用にExcelファイルを開くという処理の前に、「ログ書き込み用のExcelファイルがない場合、Excelを空ドキュメントで起動して、名前をつけて保存する」という処理を行ってあげればよい。いったんMicrosoft Excelを起動して空ファイルとして保存するという操作を、人間ではなくPower Automateに行わせるわけだ。保存するときにログファイルのパスを指定すれば、空ファイルの新規作成という処理になる。
Excelファイルがない場合は作成する処理を追加する
では、この処理を追加していこう。まず、アクションから『ファイルが存在する場合』を選択する。
アクション:「ファイルが存在する場合」
『ファイルが存在する場合』には条件として「ファイルが次の場合:存在しない」と選択することができるので、ログを書き込むファイルパスを指定しつつ、条件を「存在しない」にする。
アクション:「ファイルが存在する場合」→「ファイルが次の場合:存在しない」
『ファイルが存在する場合』を追加すると、次のように『ファイルが存在する場合』『End』という二つのアクションが追加される。このアクションの間に別のアクションを追加しておけば、『ファイルが存在する場合ー存在しない』場合に処理が行われることになる。
『ファイルが存在する場合』『End』が追加された状態
ファイルがなかった場合にMicrosoft Excelファイルを新規作成したいので、次に『Excel の起動』アクションを追加する。
アクション:「Excel の起動」
『Excel の起動』で「Excel の起動:空のドキュメントを使用」を選択する。
アクション:「Excel の起動」→「Excel の起動:空のドキュメントを使用」
ファイルがなかった場合にExcelが起動してくるようになる。そしてすぐに『Excel を閉じる』を選択する。
アクション:「Excel を閉じる」
『Excel を閉じる』で「Excel を閉じる前:名前を付けてドキュメントを保存」を選択するとともに、ドキュメントの形式とパスを指定しておく。パスにはそのあとのアクションで開くことになるログファイルのパスを指定しておく。
アクション:「Excel を閉じる」→「Excel を閉じる前:名前を付けてドキュメントを保存」
これで処理の追加は完了だ。
Microsoft Excelファイルの新規作成処理が追加された状態
早速実行してみよう。
●
Excelファイルがない場合には新規作成される
この状態で、まずバックアップアプリのログファイルを削除するか、名前を変更する。
バックアップアプリのログファイルパスを変更
バックアップアプリを実行する。
バックアップアプリ
バックアップアプリ実行完了
実行中にMicrosoft Excelが2回起動してくることを確認できると思う。1回目の起動で存在しないファイルを新規作成し、2回目の起動でログデータの書き込みを行っているわけだ。
バックアップアプリを実行すると、先ほどのフォルダに、コピーされたフォルダと、新しくログデータ書き込み用のMicrosoft Excelファイルが生成されていることを確認できる。
データのコピーとログファイルの生成を確認
ログファイルを開くと、次のようにログデータが書き込まれていることを確認できる。
ログデータの書き込みを確認
今回追加した処理が機能していることがわかる。
Excelファイルがある場合はそのまま使われる
ここでもう一度、バックアップアプリを実行してみよう。次のように、データのバックアップが行われることを確認する。
バックアップアプリをもう一度実行した後
この実行では、Microsoft Excelは1回しか起動してこない。それはすでにログファイルが存在しているので、新規作成処理の部分が動かないためだ。
ログファイルを開くと、次のように先ほど作成されたログファイルにログデータが追加されていることを確認できる。
ログデータの追加書き込みを確認
チュートリアルのバックアップアプリの機能はそのままに、使い勝手をよくする機能を追加できたことがわかる。
アクションを追加してフローを組み上げる
Power Automateでは、このようにアクションを追加してフローをより適切なものへ調整していく。通常のプログラミング言語はゴリゴリと条件分岐が書けてしまうので、コードを複雑にするのは簡単ではある。だが、Power AutomateはUI/UXの都合上、そのような感じで複雑化させることが逆に難しい、というのはあるかもしれない(もちろん使い方によるだけで、複雑に書こうと思えばいくらでもそうできる)。
あまりフローを複雑にするのはメンテナンスしにくくなるのでお勧めできないが、人間が煩わしいと感じる処理は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が提供する次のチュートリアルを進めながらPower Automateの使い方を学んでいる。このチュートリアルはフォルダのコピーを主機能としたバックアップアプリを作るというものだ。その過程で作業内容をMicrosoft Excelにログデータとして記録するという処理が入っており、むしろこちらのほうがサンプルとしては面白い内容になっている。
前回はExcelにログデータを書き込む部分に手を加えて、ほかのデータも記録するように変更してみた。今回はこの作業を一旦もとに戻して、別のExcelに関する別の操作を追加する。
Microsoft Excelファイルの新規作成
チュートリアルのバックアップアプリでは、ログを書き込むExcelファイルを「開く」という操作で作成している。やってみるとわかるが、指定したファイルがない状態で「開く」処理を行うとエラーになる。ファイルがないからエラーになるわけで、プログラムとしては適切に動作している。
しかし、使ってみるとわかると思うが、この動作はかなり手間がかかる。ログファイルはできれば自動的に作成してほしいわけで、ファイルがない場合は「開く」操作ではなく「新規作成」の動作をしてほしい。しかし、Power Automateに用意されている「Excel の起動」というアクションには、ファイルの新規作成のオプションは用意されていない。
ではどうするかといえば、Power Automateに用意されているアクションを組み合わせて、「新規作成」と同じ結果になるようにする。具体的には現在の「Excel の起動」アクションの前に、次のアクションを追加すればよい(ほかにもやり方はいろいろあるが、説明しやすいので今回はこのやり方で)。
要するに、ログの書き込み用にExcelファイルを開くという処理の前に、「ログ書き込み用のExcelファイルがない場合、Excelを空ドキュメントで起動して、名前をつけて保存する」という処理を行ってあげればよい。いったんMicrosoft Excelを起動して空ファイルとして保存するという操作を、人間ではなくPower Automateに行わせるわけだ。保存するときにログファイルのパスを指定すれば、空ファイルの新規作成という処理になる。
Excelファイルがない場合は作成する処理を追加する
では、この処理を追加していこう。まず、アクションから『ファイルが存在する場合』を選択する。
アクション:「ファイルが存在する場合」
『ファイルが存在する場合』には条件として「ファイルが次の場合:存在しない」と選択することができるので、ログを書き込むファイルパスを指定しつつ、条件を「存在しない」にする。
アクション:「ファイルが存在する場合」→「ファイルが次の場合:存在しない」
『ファイルが存在する場合』を追加すると、次のように『ファイルが存在する場合』『End』という二つのアクションが追加される。このアクションの間に別のアクションを追加しておけば、『ファイルが存在する場合ー存在しない』場合に処理が行われることになる。
『ファイルが存在する場合』『End』が追加された状態
ファイルがなかった場合にMicrosoft Excelファイルを新規作成したいので、次に『Excel の起動』アクションを追加する。
アクション:「Excel の起動」
『Excel の起動』で「Excel の起動:空のドキュメントを使用」を選択する。
アクション:「Excel の起動」→「Excel の起動:空のドキュメントを使用」
ファイルがなかった場合にExcelが起動してくるようになる。そしてすぐに『Excel を閉じる』を選択する。
アクション:「Excel を閉じる」
『Excel を閉じる』で「Excel を閉じる前:名前を付けてドキュメントを保存」を選択するとともに、ドキュメントの形式とパスを指定しておく。パスにはそのあとのアクションで開くことになるログファイルのパスを指定しておく。
アクション:「Excel を閉じる」→「Excel を閉じる前:名前を付けてドキュメントを保存」
これで処理の追加は完了だ。
Microsoft Excelファイルの新規作成処理が追加された状態
早速実行してみよう。
●
Excelファイルがない場合には新規作成される
この状態で、まずバックアップアプリのログファイルを削除するか、名前を変更する。
バックアップアプリのログファイルパスを変更
バックアップアプリを実行する。
バックアップアプリ
バックアップアプリ実行完了
実行中にMicrosoft Excelが2回起動してくることを確認できると思う。1回目の起動で存在しないファイルを新規作成し、2回目の起動でログデータの書き込みを行っているわけだ。
バックアップアプリを実行すると、先ほどのフォルダに、コピーされたフォルダと、新しくログデータ書き込み用のMicrosoft Excelファイルが生成されていることを確認できる。
データのコピーとログファイルの生成を確認
ログファイルを開くと、次のようにログデータが書き込まれていることを確認できる。
ログデータの書き込みを確認
今回追加した処理が機能していることがわかる。
Excelファイルがある場合はそのまま使われる
ここでもう一度、バックアップアプリを実行してみよう。次のように、データのバックアップが行われることを確認する。
バックアップアプリをもう一度実行した後
この実行では、Microsoft Excelは1回しか起動してこない。それはすでにログファイルが存在しているので、新規作成処理の部分が動かないためだ。
ログファイルを開くと、次のように先ほど作成されたログファイルにログデータが追加されていることを確認できる。
ログデータの追加書き込みを確認
チュートリアルのバックアップアプリの機能はそのままに、使い勝手をよくする機能を追加できたことがわかる。
アクションを追加してフローを組み上げる
Power Automateでは、このようにアクションを追加してフローをより適切なものへ調整していく。通常のプログラミング言語はゴリゴリと条件分岐が書けてしまうので、コードを複雑にするのは簡単ではある。だが、Power AutomateはUI/UXの都合上、そのような感じで複雑化させることが逆に難しい、というのはあるかもしれない(もちろん使い方によるだけで、複雑に書こうと思えばいくらでもそうできる)。
あまりフローを複雑にするのはメンテナンスしにくくなるのでお勧めできないが、人間が煩わしいと感じる処理は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