春ですね
FIXERに入社して4か月目、社会人歴6年目に突入しました堀です。
新年度が始まるこの時期になると初々しい新人の方々を見て、「自分にもあんな時期があったなー懐かしいなー」っていうほわほわした気持ちになります。その後に「自分何年目になったんだ?1年早っ!!」ってなんとも言えない気持ちになります。今日も四日市は風が気持ちいいですね。
何を自動化させるのか
いきなりですがみなさんは「株」を持っていますか??
最近は個人の方でも資産運用をしている時代になって、「自分で株を持っている」なんて人もかなり増えてきたかなと思います。少し余談ですが、株を保有することは経済の動向に関心を持ついいきっかけになると思っているのでどんどん身近になるといいなーと思っています。もちろんやりすぎは注意です!!
今回は決まった時間に自動的に株価をメールで通知してくれるという非常にシンプルな自動化ツールを作っていきます。わざわざアプリやブラウザにアクセスして株価をチェックするって頻繁にはしないですよね。でもランチタイムに自動的にメールが飛んできて、15秒でチェックできたらちょっとだけ便利かなーと思いました。
実践
ここからは実際にMicrosoftのPowerAutomate(以下PA)で自動化ツールを作成していきたいと思います。
全体のおおまかな流れとしては以下のような形です。
①イベントが発火するタイミングを決定・変数を用意
②エクセル内にある企業データを取得
③企業データを下にYahoo financeにアクセスして株価を取得
④Outlookで送信して完了
①イベントが発火するタイミングを決定・変数を用意
PAのサイトにアクセスしたら「スケジュール済みクラウドフロー」というところから始めていきましょう。その後のフロー名、このフローを実行する等は任意に決めて大丈夫です。これはトリガーと呼ばれる実行のタイミングを決定するフェーズです。どんなタイミングで実行させるのかを決めます。
続いて変数を初期化しておきます。今回は「メッセージ」変数を文字列型で設定しておきます。
②エクセル内にある企業データを取得
以下のような簡単なエクセルデータを作成しておきます。こちらは必ずテーブルデータとして作成してください。ちなみにMSFT(マイクロソフト)、AAPL(アップル)、FB(フェイスブック)、AMZN(アマゾン)、PFE(ファイザー)といったデータを用意しています。
作成出来たらPAのサイトにアクセスしてエクセルデータを取得させます。
ここまできたら一度画面右上のテストからプログラムを実行させてください。
実行履歴から該当のテストを選択→表内に存在する行を一覧表示から以下のようなデータを探してメモ帳等に張り付けておきましょう。
{
"@odata.etag":"",
"ItemInternalId":"xxxxxxxxxxxxxxxxxxxxxxxxxx",
"Stocks":"MSTF"
}
③企業データを下にYahoo financeにアクセスして株価を取得
続いて以下のように「Apply to each」アクションの中に必要なアクションを選択していきます。「Apply to each」は繰り返し処理でエクセルデータの行一つ一つに対して処理を実行しています。次から一つ一つみていきましょう。
「JSONの解析」アクションを追加して、「サンプルから生成」をクリックして先ほどメモ帳に張り付けておいたデータからスキーマを作成します。
次に最新の株価を取得するためにRESTAPIを呼び出すHTTPアクションを追加します。URIの中に解析した株式文字列を入力します。
ここで再度「JSONの解析」アクションを選択して、コンテンツに「本文」のパラメーターを入力します。
今回はスキーマに直接以下のデータを使用してください。(サンプルから生成ではない)
{
"type": "object",
"properties": {
"chart": {
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"currency": {
"type": "string"
},
"symbol": {
"type": "string"
},
"regularMarketPrice": {
"type": "number"
}
}
}
}
}
}
}
}
}
}
次に「文字列変数に追加」アクションを選択します。以下のように作成しておきます。前に設定しておいた変数にOutlookで送信するためのデータを追加しています。(※regularMaker...→regularMarketPrice)
入力途中で「Apply to each」に自動的に囲まれますがそのまま次に進めて大丈夫です。
④Outlookで送信して完了
「メールの送信(V2)」アクションを選択してOutlookで任意のメールアドレス宛に送信して完了です。
実行すると実行時点での株価を表示してくれる以下のようなメールが送られてきます。
最後に
今回はPowerAutomate入門編ということで自動化ツールを作成してみました。派手なことはできないけれどあったらちょっとだけ便利だなを形にできるのがPowerAutomateだと思っています。みなさんもめんどくさいなと思っていることがあれば一度RPAできないか考えてみてもいいかもしれません。それではっ!!!!