Power AutomateがVBAを駆逐する

誰でもプログラマー時代がやってくる。

ついにMicrosoftがVBAを本気で滅しにきたようです。我々VBAerがお払い箱になる日もそう遠い未来ではないでしょう。合掌。

GUIプログラミングの時代がやってくる

プログラミングは人間の意思をコンピューターに伝える手段です。究極の方法は考えただけでコンピューターに伝わる脳波インターフェイスですが、これはまだ最先端の技術で、現状では仕方なくキーボードから定められた形式で文字を入力して伝えるという手段をとらざるを得ないわけです。いうなれば、プログラミングの世界は長らくCUIしか選択肢がなかったのです。

脳波の一歩手前は声での操作ではないかと思いますが、これはアプリではかなり実用的なレベルになっていて、音声操作が可能なものはたくさんあります。

さらに一歩手前に「やりたいことを選んでいくだけ」という段階があります。世のアプリではこれをGUIという形で実装していて、もはやできて当たり前、できない方が希ですが、プログラミングでは子供向けの Scratchなどで学習用途で実現できているに過ぎませんでした。

pam0.png

このScratchライクな操作でOfficeアプリに限らず、さまざまなWEBサービスを自動化できてしまうのが、Microsoft Power Automateです。プログラミングの世界がやっとGUIになります。新たな時代の潮流を感じずにはいられません。

・・・風が、・・・くる!・・・

Power Automateについて

Power AutomateはMicrosoft365(旧Office365)のアプリのひとつでアカウントを持っていれば利用できます。基本は追加料金なしで利用できますが、TeamsやSharePointなどに組織アカウントが必要になったり、有料プランでのみ使える機能があったりします。個人で使うというよりは、会社での業務に使うことが想定されています。

Power Automateの操作はいたって簡単でアプリでやりたいことを選択肢から選んでいくだけです。有名どころのアプリを組み合わせた処理はあらかじめテンプレートが用意されていて、それらをもとに自分のパラメーターに書き換えるだけでも使えます。

今回は「Outlook.com のメールの添付ファイルを OneDrive に保存する」テンプレートをベースに多少手を加えて自動化してみます。

テンプレートからフロー作成

Power Automate自体はクラウドベースのアプリでhttps://japan.flow.microsoft.com/からMicrosoft365アカウントでログインして利用します。URLに名残があるflowというのはPower Automateの前身のアプリらしいです。

pam1.png

左側のメニューからテンプレートを選択すると、利用できるテンプレートが一覧表示されます。使いたいテンプレートを選択すると次のような画面になり使用されるアプリへのアクセス権のチェックが行われます。

pam2.png

下の方にテンプレートのフローで使用されるアプリ一覧が表示されています。フローとは一連の自動操作のまとまりのことを言います。「このフローの接続先~」にチェックマークがついているものはすでに利用できる状態になっています。

pam3.png

現時点のログイン情報では接続ができないアプリ、たとえば私がまだ接続を許可していないYouTubeをフローに入れようとすると次の画像のようになります。+マークをクリックするとログイン画面に遷移します。

pam4.png

アプリ(やWEBサービス)が利用できるアカウントでログインする必要があります。SharePointなど企業アカウントでなければ使えない機能は、個人アカウントではあきらめましょう。

ログイン時には自動操作の許可を求められます。Power AutomateからメールやOneDriveにアクセスするけど、いいよね?ということです。許可します。

pam5.png

フローの作成ボタンを押すと、テンプレートからフローが作成されフローの概要画面になります。

pam6.png

今回のテンプレートの場合、この時点ですでに「Outlook.com のメールの添付ファイルを OneDrive に保存する」ことができるようになっています。

ためしにメールを自分のOutlook.comのアドレスにファイルを添付して送ってみると、私の環境ではタイムラグが結構あり、おおむね送信から10分程度でOneDriveのEmail attachments from Flowというフォルダ(なければ作成される)の

pam7.png

中にメールの添付ファイルが保存されました。

pam8.png

やべぇです。おそるべき簡単さ。これをVBAオンリーでやろうとしたら並大抵のコード量では済まないでしょう。

フローの編集

Power Automateがテンプレートからどのようなフローを作成したのかは概要画面の編集から確認できます。

pam9.png

フローが表示されます。

pam10.png

アプリアイコンと説明文の短冊が表示されます。この短冊をステップと呼びます。フローという名が示す通り、ステップは上から下へ順次実行されます。一番最初のステップは特にトリガーと呼ばれます。

トリガーはフローの起点となる何かしらのイベントを設定します。今回の場合「On new email」すなわち「新しいメールが届いたとき」です。Power Automateはイベントドリブンということです。VBAerにはイベントドリブンはおなじみですよね。


それぞれのステップをクリックすると詳細なパラメーターを確認できます。

pam11.png

トリガー「On new email」ではパラメーターとしてOutlook.comの新着メールを監視するフォルダを指定しています。

pam12.png

デフォルトでは受信フォルダのルートになっています。フォルダアイコンをクリックすると、サブフォルダに変更できます。詳細オプションを表示するで件名、差出人他いろいろ条件を指定することができます。

次段の「Apply to each Attachment on the email」ステップはメールの添付ファイルに対して総当たり処理をしていくループです。VBAでいうところのFor Eachに相当します。

ネストされている「Create file」ステップでOneDriveへ添付ファイルを保存しています。

pam13.png

各パラメーターの指定はフォームをクリックすると、次の画像のような選択肢が表示されるので、そこから選んでいくだけです。

pam14.png


では、新たなステップとしてOneDrive上のExcelファイルに新着メールの情報を書き込んでみます。書き込む用のブックを次の画像ような書式で用意しました。Power Automateから選択しやすいようにテーブルとして作成しています。これをmail.xlsxとしてOneDriveに保存しました。

pam20.png

フローの新しいステップボタンで、ステップを追加します。そのままだと、めちゃくちゃたくさん選択肢があるので、検索でExcelに絞ります。Excel Online(OneDrive)を選びます。

pam21.png

アクションにできることが一覧表示されます。VBAでいうところのメソッドです。下までスクロールしていって表に行を追加を選びます。

pam22.png

表に行を追加ステップが新たに作成されます。パラメーター設定はファイルとテーブルを指定すると、そのテーブルの列名が表示されます。テーブルの列名に対応するメールの項目を選択肢からポチポチしていくだけです。こうなりました。

pam23.png

ちなみに添付ファイルをパラメーターに持たせると自動的にこのステップをApply to eachでラップしてくれます。つまり空気を読んで添付ファイルが複数あった場合でも大丈夫なようにしてくれます。

「おまえ、それをやるんだったらループでまわさないとダメだぞ。ったく、しょーがねーなオレがやっとくからよ」ってことです。すごすぎ。VBEには一生真似できないイケメンぶり。私が心酔するIntelliJ IDEAに近づいていますね。

フローの一番最後にある保存ボタンでフローの変更を確定します。

メールにファイルを添付して送信し、しばらく待つと

pam24.png

指定したExcelのテーブルにメール情報が追加されました。簡単すぎ。ヤベぇでしょ・・・。

あなたも今すぐはじめるべきです。

まとめ

Power Automateはまだまだ進化していくのではないかと思います。AIに取って代わられなくなる職業、確率95%でプログラマーがいよいよ現実味を帯びてきました。Power Automateネタは面白いので今後もやっていきたいです。

つづく。


つづきができました。

related pages
VBAからLINEにメッセージを送る
LINE Notify APIにVBAからリクエストする方法。

LINE Notifyというサービスがあります。API経由でLINEにメッセージが送れます。これをVBAから利用できればいろいろ面白いことができそうですよね。たとえば、Excelファイルのイニシャライズイベントに仕込んでおけば、ファイルが開かれたらLINEにメッセージが届きます。発想次第で画期的な何かが生まれそうな予感がします。

Read More ...
Power AutomateでExcelの特定の行に対していろいろやる
Power AutomateからExcel行の検索と更新をする方法。

PowerAutomateはVBAerを地上から駆逐するために投入されたMicrosoftの新兵器です。Excelで特定の行の特定の列の値を書き換えたいというシチュエーションはままあるでしょう。「VBAをぶっ壊す」を標榜(非公式:オレ脳内)するPowerAutomateでは、もちろんそんなの余裕です。

Read More ...
Excelでの作業を加速するマウス
PCに付属してきたマウスは窓から投げ捨てろ!

メーカー製やBTOのPCであれば、付属してきたマウスをそのままお使いの方が多いのではないでしょうか。それで何も問題がないのでわざわざ別のマウスに変えようとも思わないでしょう。実は人間とコンピューターをつなぐインターフェイスであるマウスやキーボードはPC作業の効率に大きく関与する要素なのです。

Read More ...
この記事の
作成日

2020-10-25

更新日

2021-05-07

ページ内検索
目次
WEB MASTER
さいた
神エクセル撲滅協会理事(自称)
さいたま市民 埼玉こそ地上の楽園