Microsoft Flow は、トリガーやアクションの組み合わせで様々な処理を自動化することができます。さらには単純な組み合わせ以外にも、「変数」を活用することで、もっと柔軟で動的なより便利な処理を作成することもできます。

正直なところ、変数を使いこなすには「プログラミング的な考え方」が多少は必要となり、これまでそうした経験のない方には難しいかもしれません…、が、使えるときっと楽しくなりますよ!

変数とは?

変数といって思い出すのは数学の授業でしょうか?「y = 3x + 5」みたいなヤツですね。x が 1 なら y は 8 になるし、y が 11 なら x は 2 になるみたいなヤツです。この x や y みたいに値が変わるものが変数というわけでした。

Microsoft Flow の変数

Microsoft Flow で利用される変数は、数学の変数と同じようでちょっと違って、あとから利用できるように何かしらの値を一時保存しておくための仕組みです。

数学で考えるのであれば、「x = 1 のとき、3x + 5 の値はなんでしょうか?」という問題があったとします。答えは 8 ですが、この答を導き出すために、きっと「x は 1」という情報を頭の中に一時的に保存したかと思います。そうした仕組みが変数です。(イメージできますか?)

変数の使い方をもっと具体的にイメージするために、次から実際に Microsoft Flow で変数を利用してみましょう。

変数を利用するための 2 つの操作

Microsoft Flow で変数を利用するには、大きく 2 つの操作を覚えておく必要があります。

  1. 変数の初期化
  2. 変数に値を設定

さっそく試してみます。

変数の初期化

変数を利用するためには、必ず初期化をする必要があります。つまりは「このフローには x と y という 2 つの変数がありますよ」と Microsoft Flow に教えてあげる必要があるというわけです。加えて、Microsoft Flow では「x は 1 ですよ」と変数の値を教えてあげる設定までを一度に行うことができます。

変数を初期化するためには、アクションとして「変数」コネクタの「変数を初期化する」アクションをフローに含める必要があります。そのためには、アクションを追加するときに「コネクタとアクションを検索する」で「変数」を検索してみましょう。

このときトリガーは、「モバイルの Flow ボタン」コネクタの「手動でフローをトリガーします」トリガーを設定しておきます。

そして、変数のコネクタの中にある「変数を初期化する」アクションをフローに追加します。

そうすると、「変数を初期化する」アクションがフローに追加されました。ここでは次のように設定してみます。

項目設定
名前署名
種類文字列
◆◇=*==*==*==*==*=*==*=*==*=*=◇◆
○○株式会社 △△部 〇〇課

これでフローで変数を利用する準備ができました。この時点ですでに「署名」という変数を利用することができるようになっていますので、次のステップとして「Office 365 Outlook」コネクタの「メールの送信」アクションを追加してみましょう。

ここで「メールの送信」アクションの本文を選択すると、動的なコンテンツとして変数の「署名」が選択できますので、クリックして本文に含めます。

この状態で「宛先」「件名」を適当に設定しメールを送ってみます。今回はトリガーを Microsoft Flow のボタントリガーとしましたので、全体としてはこんな形です。右上の「テスト」から実行します。

そして、届いたメールがこのようになります。先ほど「署名」として変数に指定した文字が、メールの本文に含まれているのが確認できると思います。

たとえば、フローの中にメールを送る処理が複数含まれていて、それぞれのメールに同じ署名を含めなければならない場合を考えてみます。それぞれの「メールの送信」アクションで繰返し同じ署名を手入力することもできますが、変数を利用すると署名を入力するのは 1 回で済み、あとは変数からクリックで選択するだけです。

また、署名を変更する必要がある場合も考えてみると、それぞれのアクションに手入力していた場合は、それぞれを変更しなければなりませんが、変数を利用していた場合は 1 箇所の修正で済みます。

変数を利用すると便利そうですよね。

変数に値を設定

Microsoft Flow で利用する変数は、フローの処理の途中で値を変えることができます。そのために利用するのが「変数の設定」アクションです。初期化の時と同じように、「変数」コネクタの中に含まれるアクションです。

「変数の設定」アクションを利用するためには、このアクションよりも前に必ず「変数を初期化する」アクションが必要になりますので、さきほど「署名」変数を初期化したアクションの後ろに追加します。

「変数の設定」アクションでは、次のように設定してみましょう。

項目設定
名前署名
★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★
○○株式会社 △△部 〇〇課

この状態で再びフローを実行しメールを送ってみると、届いたメールの署名が先ほどとは変わっていることを確認できると思います。

こうして処理の途中で値を変更することで、少し複雑な処理を作成できるようになったり、複雑な処理を少し簡単に作成できるようになります。

少し実践的な変数の使い方

さて、ここからはより少し実践的な変数の使い方を考えていきたいと思います。まず、次のようなフローを作成したとします。

「はい/いいえ」を入力できるボタントリガーがあり、そのボタントリガーの選択に応じて、まったく同じメールを別の宛先に送り分けるというフローです。

フローには 2 つの「メールの送信」アクションがあり、宛先が異なるだけのために、全く同じ「件名」と「本文」をそれぞれ入力する必要があります。たとえばこれを、変数を利用して次のようにフローを作り変えてみます。

「宛先」という名前で「変数を初期化」し、条件分岐の中では、メールの宛先となるメールアドレスのみを「変数の設定」で設定します。そして、条件分岐の後に「メールを送信する」アクションを 1 つだけ追加し、宛先として「宛先」変数を設定します。

こうして変数を利用することによって、全く同じ「件名」と「本文」を 2 回入力する必要なく、先ほどと同じ処理のフローを作成できました。

変数を利用したことによって、一見複雑さが増したようにも見えますが、設定項目の多いアクションを 1 つにまとめ、また、同じ入力を複数のアクションで行う必要がなくなったため、あとからフローを変更するときはシンプルで簡単になります。

さいごに

さて、長くなってきたので、ここで一旦まとめます。

これまで 「プログラミング的な考え方」 に馴染みのない方にとっては、変数は少し難しい機能かもしれません。ただ、その仕組みを一度理解できてしまいさえすれば、実は簡単で便利に利用できる機能です。

今回は、利用頻度も高い「文字列」の変数について扱いましたが、変数では更にいろいろな値を保存しておくことができます。そのためには、変数の「種類」を知っておく必要があるのですが、そのあたりは、また次回に投稿したいと思います。