無駄ロボット研究所

あたるも八卦! Watchおみくじロボ の巻 ~今日の運勢をWebサイトで占う

『無駄ロボット研究所』ではRPA(Robotic Process Automation)ツール「UiPath Studio」を使って役に立たない、無駄なロボットを作っていきます。業務を効率化するという本来RPAで実現すべき目的とは真逆のロボットたちをお楽しみください。

 今日の運勢をインプレスのWeb媒体に託してみてはいかがでしょうか? Webブラウザーを起動して、表示された媒体が、今日のあなたの運勢です。え? どれが吉で、どれが凶なのかって? そんなこと言える訳ないじゃないですか。

日常を運試しに

 通勤・通学時の信号や当たり付きの自動販売機、上司や同僚の機嫌?など、日々のちょっとしたことに“運”を感じることってありますよね。

 やけにうまく行き過ぎると、それはそれで不安になるものですが、思い通りにスッとことが運ぶと、一日が良い日になりそうな予感がします。

 そんな運勢を、毎日のニュースサイトのチェックでも試してみてはいかがでしょうか?

 本日、ご紹介するロボットは、ニュースサイトの自動表示ロボです。実行すると、ブラウザーを起動して、8つあるサイトの中から、どれかひとつを自動的に選んで表示します。

 他社を巻き込むといろいろ問題があるので、インプレスのサイトのみですが、窓の杜、INTERNET Watch、PC Watch、クラウドWatchと、どのサイトが表示されるかは運次第です。

 いつも見ているサイトが表示されれば大成功ですが、なにせ1/8の確率なので、おそらく望み通りのサイトが表示される方が珍しいかもしれません。

 そういった意味では、使わない方がいいかもしれません。

ワークフローのポイントをチェック

 さて、このロボットの動作は、とてもシンプルです。

今回作るワークフローの全体像。“代入”と“スイッチ”の2つのアクティビティを使う

“代入”でVB.NETを使う

 まずは、0から7まで8個の数字の中から、ランダムな1つの値を生成します。

 「UiPath Studio」には、乱数を生成するアクティビティは特に用意されていません。このため、VB.NETのクラスを使います。

 “代入”アクティビティを使って、左辺に変数(ここでは“diceNum”)、右辺に“New random().Next(7)”とします。

 この右辺の“New random().Next(7)”がポイントです。“Random”クラスのインスタンスを作成し、“Next”メソッドを呼び出していますが、UiPathでは、このようにVB.NETの構文をそのままワークフローの中に記述できます。

 Excelのマクロなどに慣れている方は、こうした方法に馴染みがあるかと思いますが、今までの知識をそのまま活用できるわけです。

 ちなみに、ここでは“代入”を使っていますが、同じことを変数パネルで指定することもできます。

 変数パネルは、「UiPath Studio」の変数を管理するための画面ですが、[既定値]の部分に、同様に“New random().Next(7)”と記入しておけば、“代入”は不要です。

 どちらか一方で、ランダムな値を生成しておけば問題ありません。

代入の代わりに、変数パネルでランダムな数を生成してもかまわない

“スイッチ”で分岐

 さて、“代入”で0~7のうちのどれかの値が“diceNum”に入ったので、この値を元に、それぞれのニュースサイトへと分岐させます。

 このように、何らかの条件によって処理を分岐させたいときは“スイッチ”アクティビティを使います。分岐が2つなら“条件分岐”でもかまいませんが、3つ以上のときは、この“スイッチ”の出番です。

 スイッチを使う上でのポイントは4つあります。

  1. “Expression”
    “Expression”は、条件を記述します。ここでは、diceNumの値が判断記述になります。



  2. “TypeArgument”
     “Expression”で指定した値の型を指定します。ここではランダムで選択された0~7の値なので、32ビット符号付き整数の“Int32”を選択します。



  3. “Default”
     分岐先は“Default”と“Case”の2種類があります。“Default”は、後述する“Case”で指定された条件のどれにも当てはまらなかったときに選択される分岐先です。空欄のままにすることもできますが、ここでは0が選択されたときを“Default”に割り当てます。“ブラウザーを開く”アクティビティを配置してURLを“"https://forest.watch.impress.co.jp/"”と半角二重引用符“"”で囲んでおきます。


  4. “Case”
     “Case”は、それぞれの分岐先です。1の場合、2の場合のように必要に応じて追加できます。同様に“ブラウザーを開く”を配置して、開くサイトを指定しておきます。なお、今回はInt32を型に指定しましたが、“String”、つまり文字列を判断基準として使う場合は注意が必要です。「UiPath Studio」では、文字列を扱うとき、ほとんどの場合、半角二重引用符“"”で括るのですが、Caseとして文字列を指定するときは半角二重引用符が不要です。逆に半角二重引用符を付けると正常に分岐できないので注意しましょう。


ブラウザーでサイトが開く

 さて、これでワークフローを実行すると、インプレスのニュースサイトのうち、どれかが表示されます。いつも見ているサイトなら吉なのか、興味を引くニュースが掲載されていれば吉なのかは、あなた次第ですが、ちょっとした日常を楽しめるようになることでしょう。