PowerAutomateDesktopできないこと。正直に語り、克服方針も語る。
業務自動化にあたり、Power Automate Desktop だけでは2つできないことがありました。壁になった2つのことを紹介し、納期内でどういう方針で克服したのかを説明します。
前提:自動化していた作業
次のような改善をやっていたのですね。そのなかで2つの壁にあたりました。
before
手作業と目視でいろいろ確認しながらエクセルファイルを加工してグラフをつくりpptに張り付けたレポートを作成する。手作業では1点30分で20点のファイルを作る場合、10時間かかってしまう作業だった。だから月に数点に絞って活用するか複数人で分担し作るかしていた。
after
Power Automate Desktopでフローを実行して、ぐるっと一周して1.5時間くらいで20点のパワポファイルができる。そしてその後、目視確認に1時間くらいかける。納品したファイルは営業パーソンの皆さんが客先と話をするときに自由に使ってもらえるというイメージです。
本来、BIツールでやる仕事だと思いますが、スモールスタートからBIツールに載せるまでの間は人手で行う必要があり、無料で使い始められるRPAの活用価値があるものです。
Power Automate Desktopでまだできないこと2つ
自動化かを実施してきたら、2つの壁にぶち当たりました。
壁1 エクセルのグラフの色などの変更
壁2 PowerPoint上の要素の場所・大きさの変更
いずれも、Excel VBA でパーツとして使いやすいマクロつきエクセルファイル(後述)を作ることで解決しました。
筆者はPythonとExcel VBA、どちらも初心者から中級者レベルですが、壁となった2つのことがらについてはExcel VBAで過去に少しだけ実施してみたことがあったからです。
もちろんopenpyxlやpython-pptxでも同じようなことができるだろうとは思いますが、納期を考えて安全をとって実績がある方にしました。
Excel VBAにしろPythonにしろ、この2つの壁を解決するのは、個人的にはちょっと避けたいなと思う分野です。なぜかというと、エクセルのグラフもパワポの画面の要素もそれぞれ多層になっていて、細かな設定を書いていく必要があるからなんです。
筆者の場合は、実は、プロパティとかメソッドの理解がいまだにあいまいです。つまり、マイクロソフトのリファレンスをうまく読んでいく力がない。
だから何度かぐぐって、同じことをできているソースを持ってきて、ソース内でどこを変えればいいかを考えたり、それで動くかどうか確かめる、ということでなんとなく理解しているわけなんですけれども。幸い、今回もそれでどうにかなりました。よかった。
次に、それぞれの壁をどんな感じで解消したのかというお話2つと、さいごに作ったVBAの構造を紹介させていただきます。
壁1 エクセルのグラフの色などの変更
エクセルのグラフの 書式変更です。
具体的には、グラフ作成、タイトル表示の有無、グラフの種類の変更(棒だけでなく折れ線や面や円グラフがある)、色の変更、折れ線の色、マーカーの形や色大きさ、凡例の位置などなどです。
こうしたグラフに関連の設定を自由に変更する事がPower Automate Desktopでは、まだできません。
VBAで解決する場合も、覚えなきゃいけないパラメーターが非常にたくさんあり、いきなり覚えられないです。覚えなかったです。
ではどうしたかと言うと マクロの記録を使いました。「エクセルの表示→マクロ→マクロの記録」を選んで、グラフを作成し、色を変えるなどして、色々と記録し、記録を停止すると、マクロにVBAが自動的記録されます。自動記録されたVBAした内容と、Excel から グラフ を 操作する ことを解説しているサイトなどを見て調整してき、思ったような動きをするようになりました。解説サイトにある基本的な書き方に近づけるほど安定して動く形になりました。
ただ問題があるなと思うのはマクロの記録を使ったところで、マクロ作りはPower Automate Desktop とは別にやっぱり時間がかかってしまうところです。
でこのエクセルVBAですが、Power Automate Desktopで言うパーツ自体を作る作業になります。逆に言うと、RPAのフロー作成はプログラミングの中でパーツを作る時間の部分だけ時短になるものであることを今回痛感しました。
時間がかかるとわかっているわけですから、仕事としてうける前にやるかどうかを一度確認した方がいいと思います。
求められる納品ファイルが顧客など外部に提示する資料に使うグラフならしのごのいわず用意した方がいいです。素敵な雰囲気で顧客に話しやすい雰囲気を作れる事で利益に貢献しましょう。ボーナスステージです。
でも、そうでない社内資料場合は、エクセルデフォルトのデザインで通るように交渉したほうがいいと思います。
社内の人「グラフも色を変えてほしく…」
筆者「グラフの 色変更については、エクセルのデフォルトでの納品にしていただけるとありがたいです。グラフの色変えは新しくプログラムを作らないといけなくて時間がかかってしまうんですよ。今回必要な理由があれば教えていただけますか」
社内の人「エグゼクティブに出す資料だからやっぱりキラキラしてた方がいいです」
筆者「エグゼクティブに向かって語ることは毎月変わりますよね?自動化の時短は必ずしも代行ではなくて、新しいことを考える時間を生む行為です。なので、ご自身で少し凝ったいじり方を試していただいても会社全体としては損はしないのではないでしょうか。」
という感じで一度くらい押し返してもいいと思います。
壁2 PowerPoint上の要素の場所・大きさの変更
エクセルで一生懸命作ったグラフをControl+Cして、パワーポイントで切り替えてControl+Vでスライドに張り付けると、グラフがスライドの中の変な位置にはりつけられます。
しかし、PowerPoint 上の要素の位置・大きさとして触るパーツがPower Automate Desktopにはありません。
なぜなら、Power Automate Desktop的には PowerPoint は たくさんあるアプリの一つという扱いになるからです。
PowerPointを起動し、マウスやら使って任意の場所にドラッグするとか、キーボード使って右へ何回ずらすといったことはできるんですけど、これはこれで 調整が難しい。
マウスを使う場合、どこがクリックでき、どのくらいマウスを動かすとすなるのかを決めるとか、大変。
キーボードを使う場合、上下左右の各キーを何回おすと任意の場所に配置されるのかを決めなきゃいけません。
それよりはバシッと「この図形の左上からいくつ、上からいくつ」と決めた通りに配置されてくれたほうが良くて、エクセルVBAであればできるのです。
Power Automate Desktopのパーツとして使えうマクロつきエクセルファイルの構造
Power Automate Desktopのパーツとして使いやすいマクロつきエクセルファイル( Excel VBA 使用)を 使う場合、どんな風に作ればいいか?
筆者の場合はこうしてますという内容をご紹介します。
とにかく、Power Automate Desktopのフローの中から呼び出して使うこと。
一般的な Excel VBA のプログラムは、プログラムが書いてあるブックの中で何かするような自己完結型です。でも、それだと、任意のファイルを右から左へ加工していくベルトコンベアの工場のようなPower Automate Desktopのフローのパーツとしては不十分です。自己完結してしまうとフロー側のループの中にも入れられません。
マクロ付きエクセルファイルの任意のセルに対象となるファイルを記載し、記載されたファイルに対して何等かの加工を行い保存する形で作る必要があります。
こんな役割分担になります。
Power Automate Desktopフロー:
でマクロ入りエクセルをひらく、任意のセル(Sheet1のA1などと決める)にファイル名を記載する、任意の名前のマクロを実行する。
Excelマクロ側:
任意のセル(Sheet1のA1など決まった場所にPower Automate Desktopがファイル名を書き込んでくれる)に記載されたファイル名を変数に取得し、変数記載のファイルに対して一定の処理(グラフの色変更やパワポの各要素の位置の変更など)をしてファイルを保存する。
これ、一度形を作っておけば 使いまわしが可能だと思います。
また、フローを1時間半ほど実行してできあがった20点のファイルに対して、「ここだけちょっとやり直したいなっていう場合に、ファイル名をずらっとエクセルのシートに書いて、これをfor文で参照し、Excel VBA で 複数ファイルをピンポイントに治してあげるっていうような調整に使う形もありかなと思います。フローを全部やりなおすと1時間かかるが、VBAでテスト15分、実行は一瞬、ということもできると思います。
今回は方針のみ、以上になりますが、今後また具体的なVBAのコードとPower Automate Desktop側の設定をあわせてご紹介していけたら思います。
余談:
筆者がPower Automate Desktopについてはじめて書いた記事はこちら
↓