ボーカルリムーバーオンライン無料
Power Automate Desktopを体系的に学ぶならUdemy【初回ユーザ限定・最大96%割引】

Power Automateについて詳しく解説します

  • Power Automate Desktopでどのようにしてヤフーファイナンスのデータを取得するのか?
  • 株価情報を自動でExcelに取り込む方法はあるのか?
  • 日本株と米国株のデータ処理を自動化するにはどうすればいいのか?

当記事では、上記の疑問にお答えします。

 

株式投資で重要な毎日の株価チェックですが、いちいち株価を見てExcelに記録するのは、正直面倒ではないでしょうか。

 

そこでオススメしたいのがPower Automate Desktop。

Power Automate Desktopを使えば、デスクトップ上の操作だけではなくWebスクレイピングも自動化できるため効率的な株価チェックが可能です。

 

当記事では、ヤフーファイナンスから日本株と米国株の株価を取得しExcelへの転記までを自動化するフローを解説します。

今回の記事を読めば、煩雑な株価チェック作業を自動化できるため、よりよい投資判断ができるでしょう。

 

ぜひ一度読んでみてください。

 

 

 
Power Automate Desktopで作業自動化の電子書籍を出版しました!
📘ヘルプデスクが面倒な作業を超自動化する全方法 メール自動化編
著:やまもとてつや

Tipstour初の電子書籍化!

37歳で初の正社員となりITヘルプデスクとして勤務中の著者が、Power Automate Desktopを使った8つのメール作業・自動化事例とその方法を本書でご紹介しています。

これを読めば、ヘルプデスクの担当者はもちろん、WindowsPCで作業するすべてのワーカーの面倒なメール作業を自動化可能です。

Kindle Unlimitedで読み放題対象!
(30日間無料体験アリ)

【方法】ヤフーファイナンスから国内外の株価をExcelに転記する方法

ヤフーファイナンスから国内外の株価をExcelに転記する方法を、以下の6ステップで解説します。

    • 【ステップ①】Excelの下準備を行う
    • 【ステップ②】LoopをつかってExcel行数分の繰り返し処理を作る
    • 【ステップ③】Excelから株価コードと株の種類を取得する
    • 【ステップ④】ifを使用して日本株と米国株とで処理を分ける
    • 【ステップ⑤】If内の処理をサブフローを使って作成する
    • 【ステップ⑥】Excelを閉じる

 

ポイントはステップ②とステップ④です。

また、下記のようなExcelファイルを用意しました。

obtain_stock_prices_from_Yahoo_Finance1

ステップごとに詳細を解説します。

【ステップ①】Excelの下準備を行う

まずは、ExcelアクションからExcelを起動を中央にドラッグ&ドロップしましょう。

obtain_stock_prices_from_Yahoo_Finance_2

画面が変わったら、該当のExcelファイルを選択し保存します。

obtain_stock_prices_from_Yahoo_Finance_3

次にExcelワークシートから最初の空の列や行を取得をドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_4

変更画面が表示されたら、そのまま保存します。

obtain_stock_prices_from_Yahoo_Finance_5

上のアクションで取得した行数が、このあと設定するLoopアクションの繰り返し回数になります。

【ステップ②】LoopをつかってExcel行数分の繰り返し処理を作る

次にループアクションにあるLoopをドラッグ&ドロップします。

obtain_stock_prices_from_Yahoo_Finance_6

画面が変わったら、以下のように入力してください。

obtain_stock_prices_from_Yahoo_Finance_7

  • 開始値:4
  • 終了:%FirstFreeRow-1%
  • 増分:1

開始値は4行目で、終了の%FirstFreeRow-1%は最初の空白行から1行上なので表の最終行になります。

 

株式投資では、常に同じ株式を購入するとは限りません。

全て売り払ったり、新たに購入したりするケースもあるでしょう。

 

売買の都度、表を更新する必要がありますがフローまで変えるのは面倒です。

本来、Loopは決められた回数分のみ処理を繰り返すアクションですが、終了の値を変数にすれば表を編集するだけで表にある会社の株価をすべて取得可能です。

【ステップ③】Excelから株価コードと株の種類を取得する

Loopアクション内の処理を作りましょう。

ExcelアクションにあるExcelワークシートから読み取るをドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_8

画面が変わったら、以下のように入力します。

obtain_stock_prices_from_Yahoo_Finance_9

  • 先頭列:3
  • 先頭行:%LoopIndex%

コードを取得する理由は、後でブラウザー自動化で開くヤフーファイナンスのURLを作成するためです。

 

保存したら、再度Excelワークシートから読み取るをドラッグ&ドロップし、先頭列を4に変更してください。

4列目には日本か米国を記載しており、それぞれの処理を変更するために使用します。

 

このとき、変数ExcelDataが生成されますが、わかりにくいので3列目と4列目をCodeとRegionに変更しました。

【ステップ④】ifを使用して日本株と米国株とで処理を分ける

ifを使って、日本株と米国株とで処理を分けましょう。

ヤフーファイナンスでは、日本株と米国株とでURLの構造が違います。

ヤフーファイナンスのURL構造の違い

  • 日本株:https://finance.yahoo.co.jp/quote/株価コード.T
  • 米国株:https://finance.yahoo.co.jp/quote/ティッカーコード

URLの構造が違うため、ステップ③でコードと日本か米国かを取得しました。

 

実際に処理を分けてみましょう。

条件アクションにあるIfを2つ目のExcelワークシートから読み取るの後にドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_10

画面が変わったら、以下のように入力して保存します。

obtain_stock_prices_from_Yahoo_Finance_11

  • 最初のオペランド:%Region%
  • 演算子:と等しい(=)
  • 2番目のオペランド:日本

次に条件アクションにあるElseをIfとEndの間にドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_12

下記画像のようになっていればOKです。

obtain_stock_prices_from_Yahoo_Finance_13

【ステップ⑤】If内の処理をサブフローを使って作成する

それぞれの処理を作成する前に、サブフローとして処理をまとめておきましょう。

Power Automate Desktopの画面中央の上にあるサブフローをクリックし、新しいサブフローをクリックしてください。

obtain_stock_prices_from_Yahoo_Finance_14

画面が変わったら、好きな名前を入力して保存します。

obtain_stock_prices_from_Yahoo_Finance_15

今回は日本株としました。

obtain_stock_prices_from_Yahoo_Finance_16

新しいサブフローを作成すると画面が切り替わり、このままサブフローの処理を作成できます。

ブラウザー自動化アクションにある、新しいChromeを起動するをドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_17

画面が変わります。

obtain_stock_prices_from_Yahoo_Finance_18

初期URL欄に、以下のように入力して保存してください。

https://finance.yahoo.co.jp/quote/%Code%.T

%Code%はステップ③で読み取ったコードです。

変数を文字列に挟み込んでURLを作成するため、Loopアクションで処理が繰り返される度に企業別のページを開き株価を取得できます。

 

ここからは、あらかじめ適当なヤフーファイナンスのページを開いてからフローを作成しましょう。

ブラウザー自動化アクション内のWebデータ抽出から、Webページ上の要素の詳細を取得しますをドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_19

画面が変わったら、下記画像の黄色枠をクリックします。

obtain_stock_prices_from_Yahoo_Finance_20

下に展開したら、UI要素の追加をクリックしてください。

obtain_stock_prices_from_Yahoo_Finance_21

下記のような画面が表示されたら、現在の株価にカーソルを合わせてCtrlキーを押しながら左クリックをします。

obtain_stock_prices_from_Yahoo_Finance_22

画面がもとに戻り、UI要素欄が埋まればOKです。

 

しかし、このままでは他のURLを開いた際にエラーが発生します。

取得した要素はHTMLのSpan要素ではあるものの、実際に取得したのはSpan内にあるText要素になります。

Webページ上の要素の詳細を取得しますで取得する属性をOwn Textとしているため、Text要素のTextを取得するという処理になっており論理的にNGです。

 

そこでUI要素を変更し、Span要素だけを取得するようにUI要素を変更しましょう。

下記画像の右側にある黄色枠をクリックします。

obtain_stock_prices_from_Yahoo_Finance_23

画面が変わったら、さきほど取得したSpanをダブルクリックしてください。

obtain_stock_prices_from_Yahoo_Finance_24

さらに画面が変わるので、一番下のSpanをクリックします。

obtain_stock_prices_from_Yahoo_Finance_25

クリックすると右側の属性にTextがあるのでチェックをOFFにして保存しましょう。

obtain_stock_prices_from_Yahoo_Finance_26

これでSpanタグだけを取得し、Spanタグ内のテキスト全てが対象となります。

生成された変数として、AttributeValueが生成されたのを確認しましょう。

 

次にExcelアクションにあるExcelワークシートに書き込むをドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_27

画面が変わったら、以下のように入力します。

obtain_stock_prices_from_Yahoo_Finance_28

  • 書き込む値:%AttributeValue%
  • :5
  • :%LoopIndex%

書き込む値は先程取得した株価で、5列目の株価欄に書き込むようにしています。

 

株価を取得済みのページは必要ないので、ブラウザー自動化アクションのWebブラウザーを閉じるをドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_29

画面が変わったら、そのまま保存します。

obtain_stock_prices_from_Yahoo_Finance_30

ここまでで、日本株の処理できました。

あとは米国株ですが、実はほぼほぼ同じです。

 

サブフローを作成して、ここまでの処理を再度作成してください。

注意点としては、Chromeで開くURL欄が下記になるのと変数に2がつきます。

https://finance.yahoo.co.jp/quote/%Code%

 

サブフローを2つ作成したら、Mainフローに戻りましょう。

フローコントロールアクションにあるサブフローを実行をIfとElseの間と、ElseとEndの間にそれぞれドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_31

画面が変わったら、IfとElseの間には日本株のサブフローを、ElseとEndの間には米国株のサブフローを選んで保存します。

obtain_stock_prices_from_Yahoo_Finance_32

【ステップ⑥】Excelを閉じる

最後にExcelを閉じれば完成です。

ExcelアクションのExcelを閉じるを一番最後にドラッグ&ドロップしてください。

obtain_stock_prices_from_Yahoo_Finance_34

画面が変わったら、保存します。

Excelを閉じる前をドキュメントを保存するにすればファイルを保存できるので、お好みで選択してください。

obtain_stock_prices_from_Yahoo_Finance_35

ここまでできたら、実際にフローを実行してみましょう。

ヤフーファイナンスから株価を取得できました!

今回のMainフローは下記になります。

obtain_stock_prices_from_Yahoo_Finance_36

日本株を取得するサブフローです。

obtain_stock_prices_from_Yahoo_Finance_37

米国株を取得するサブフローです。

AttributeValueとBrowserにそれぞれ2がついているので注意してください。

obtain_stock_prices_from_Yahoo_Finance_38

まとめ

以上、Power Automate Desktopでヤフーファイナンスから株価を取得する方法について解説しました。

 

一度、作成してしまえば半永久的に使用できるので、かなり汎用性のあるフローだと思います。

アレンジ次第では、FXや投資信託にも使用できるのでぜひ試してみてください。

 
より詳しくPower Automate Desktopを学びたいと思ったら

Power Automate Desktopでの作業自動化について、より体系的に詳しく学んでいきたいと感じたら、Udemy(ユーデミー)が最適です。

Udemyはアメリカ発のWebラーニングサイトで、日本語のコースを含め、世界各国の言語でそれぞれの専門家のコースを動画形式で学ぶことが出来ます。

もちろんPower Automate Desktopの日本語コースも公開されており、すでに約300のコースがUdemyで公開・閲覧されています。

Udemyの豊富なPower Automate Desktop学習コース

Udemyは個人ユーザだけでなく、企業のeラーニングでも広く利用されています。

企業レベルのコースを受講することで、Power Automate Desktopの自動化テクニックを体系的に習得することが可能です。

 

Power Automate Desktopのコースは、業務に関連するジャンルのため1〜2万円台が一般的ですが、初回に限り、好きなコースを2000円で受講可能です。

無料で各コースの冒頭を視聴できるので、まずはUdemyにどのようなコースがあるのか、ぜひチェックしてみてください。

 

  UdemyのPower Automate Desktopコースを見てみる