Google Apps Script 時短ツール

【便利】GASで日本の個別株の株価を取得する方法

お仕事おつにゃッス🐈

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

あなたが保有する日本の個別株の損益をいちいち管理するのは、時間がかかって面倒くさいですよね?また、日々変動するのでエクセルで管理するのも難しいですよね。

この記事ではそのお悩みを、スプレッドシートのとある関数1つで解決します。

あっきょ
この記事は以下で悩んでいる人におすすめ!

  • 自分が持っている株式の損益管理を自動化したい
  • エクセルを使っているけど、もっと便利で使いやすいものに変えたい
  • JavaScriptを学んだけど、何をつくればいいかわからない

誰でも無料で簡単にできますので、お気軽に学んでいきましょう!

働きながら学べるスクール!

受講満足度98.7%の大手スクール。
初心者でも月5万円の副収入を目指せる「はじめての副業コース」が幅広い年代に人気。
3分で登録簡単!

日本株の損益計算する完成イメージ

GASで日本株の損益計算をスプレッドシートで行うアプリのイメージ

スプレッドシートで日本の株の損益計算を行います。

個別株の計算をするので行ごとに銘柄を分け、リアルタイムで「終値」の取得を自動化して損益も自動で計算する仕組みです。

この記事では、あなたが日本の自動車メーカーの株を500株ずつ保有している想定で開発を進めていきます。

注意

この記事で例に出した銘柄はあくまで例です。運営者が保有もしくは売買を推奨しているものではありません。

株式のデータを取得する方法

GASで日本株を取得する方法のイメージ

GASで日本株を取得するには、「スクレイピング」という技術を使用します。

スプレッドシートにはアメリカの株式のデータを簡単に取得できる関数があるのですが日本株には未対応です。したがって、Googleファイナンスのサイトにアクセスして情報を収集する必要があります。

米国株を取得する方法はこちらから。

スクレイピングとは?

スクレイピングとは、WEBでよく使用される技術です。

SBテクノロジー株式会社様のサイトに詳しい解説がありましたので、引用させていただきました。

スクレイピングとは、Web サイトで公開されている情報の中から特定の情報だけを抽出するコンピューターソフトウェア技術のことです。「Web スクレイピング」とも呼ばれています。Web サイトから入手した情報は、加工して新たな情報として生成されます。これにより、手動でデータを収集する際にかかる手間や時間の大幅な削減が可能です。

Web スクレイピングとは?自社サイトが晒される脅威から対策まで解説 | SBテクノロジー (SBT)

つまり、Webサイトを循環して必要な情報だけを大量に収集します。

したがって、何かしらデータを収集したい場合は1クリックですべての過程を自動化できると言ってもいいでしょう。

スクレイピングで気を付けること

スクレイピングを行うにはサイトが許可しているかを確かめる必要があります。

サーバーへの過度な負荷や抽出したデータの公開による著作権侵害の可能性があるので、慎重に確かめる必要があります。

スクレイピングの許可は公開されているGoogleファイナンスのrobot.txtを確認します。「Allow: /finance」とあるので個人利用のスクレイピングは問題ないと考えてよいでしょう。

日本株の管理をする準備

Google Apps Script で日本の株価を取得する準備をします。ファイルは1つ必要です。

必要なファイル

  • Google スプレッドシート ・・・ 株式データの保存と株価のリアルタイム更新

Google スプレッドシートの作成

Google スプレッドシートを作成していきます。下のリストにある6項目を登録します。

項目詳細
コード購入した株式の証券コード
企業名購入した日本の株式の企業名
保有数購入した株式数
取得単価
購入した株の平均取得単価
終値市場が大引したときの株価
損益「終値 - 取得単価」で算出される損益

スプレッドシートの1行目に各見出しを記入します。

GASで日本株の損益計算をスプレッドシートで行うアプリのスプレッドシートの準備

2行目以降にそれぞれの項目を記入していきます。スプレッドシートの準備は以上です。

GASで日本株の損益計算をスプレッドシートで行うアプリのスプレッドシートに個別株を記入

サンプルコードを貼り付ける場所

サンプルコードはGoogle スプレッドシートにコピペします。

上バーの「拡張機能」の中にある「Apps Script」をクリック。ここにコードを書きます。

GASをスプレッドシートに記入する際の「Apps Script」の表示

Parserライブラリの導入

GASでスクレイピングを行うには「Parserライブラリ」をダウンロードする必要があります。

コードを貼り付けるApps Scriptの左側にある「ライブラリ」をクリックします。

ライブラリの選択

ライブラリを追加する画面が現れます。スクリプトIDに1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw」と記入して検索ボタンを押します。

Parserライブラリの選択

Parserのバージョン8を導入します。確認できたら追加ボタンを押します。準備は完了です。

Parserライブラリを導入

日本株の株価を管理するサンプルコード

日本株の現在の価値をリアルタイムで表示する関数を紹介していきます。

GETPRICE() | 日本株の株価を自動取得する自作関数

スクレイピングで日本の個別株の株価を取得する自作関数GETPRICEの説明

スクレイピングで日本株の株価を取得するには、自作関数のGETPRICE関数を使用します。引数には4桁の証券コードを記入します。

例えば、トヨタ自動車の場合は引数に「7203」と書きます。

サンプルコード

サンプルコードの全体です。右上にあるマークを押すとコードのコピペが一瞬でできます。

function GETPRICE(code){
  const url = "https://www.google.com/finance/quote/" + code + ":TYO"; //URL
  const html = UrlFetchApp.fetch(url).getContentText(); //フェッチ通信でサイト内の文章を取得
  let stockPrice = Parser.data(html)
    .from('<div class="YMlKec fxKbKc">') //現在の株価が書かれているクラス
    .to("</div>")
    .build();

  return stockPrice.replace("¥",""); //replaceメソッドで「¥」と取り除いて数字のみを返す
}

日本株の株価を取得するテスト

実際に日本の株式のデータを取得してみましょう。

E列の「終値」に「=GETPRICE(A2)」と記入します。

スクレイピングで日本の個別株の株価を取得する自作関数GETPRICEの準備

スクレイピングが完了して株価が現れます。2022年9月20日現在の結果が表示されました。

スクレイピングで日本の個別株の株価を取得する自作関数GETPRICEの結果

次はF列に現在の損益を計算します。「=E2*C2-D2*C2」と記入します。

スクレイピングで日本の個別株の株価の損益計算の準備

損益の計算式は以下の通りです。

ポイント

損益 = 現在の株価 × 取得数 - 取得単価 × 取得数 

現在の損益が反映されました。

スクレイピングで日本の個別株の株価の損益計算のした結果

同じ方法で他の株式にも反映してみましょう。含み損の場合は数字の前にマイナスがついています。

スクレイピングで日本の個別株の株価の損益計算の一覧

今週のお得スクール(1/8~1/14)

受講満足度98.7%の大手スクール。
初心者でも月5万円の副収入を目指せる「はじめての副業コース」が幅広い年代に人気。

3分で登録簡単!

月額2,980円から学べるサブスク型スクール。
どの授業も受け放題&回答率100%の掲示板で挫折しない学習環境が強み。

初月受講料50%オフ!

おわりに

以上がGoogle Apps Scriptで保有している日本株の情報を管理する方法でした。

そのままコピペして日常業務で使いやすいように改修したり、プログラミングの練習や動作確認用に使ってみましょう。

次回の記事もご期待ください!

-Google Apps Script, 時短ツール
-, , , , , , , , , , , , , , , , , , , , , , , , , , , ,

S