Googleスプレッドシートで株価を取得する方法について解説します。
GoogleスプレッドシートであればOSに依存せずに利用できる上、無料なので大変便利です。
しかし、GOOGLEFINANCE関数は主にアメリカ株の株価に対応しており、現時点では日本株には対応していません。
なので、今回は自作で関数を作成し、日本株の価格を習得したいと思います。
更にGoogleスプレッドシートはGoogle Apps Script(GAS)と連携させることで、定期的にメールで情報を送ることも可能になります。(Googleのクラウド上で動作するのでPCが電源OFFでも動きます。)
Googleスプレッドシートの起動

上記のようにGoogleスプレッドを起動します。
もしくは、リンクから起動します。
新しいスプレッドシートを作成

空白を選択し、新しいスプレッドシートを作成します。
日本企業の株価を取得するため、関数を作成する
Googleスプレッドシートで提供されているGoogleFinanceという関数では英語の株価しか取得できません。
なので、Google Apps Script(GAS)を使用して、スプレッドシート内に自作したオリジナル関数を反映させ、Google内で株式情報を提供しているサービスから日本株の株価情報を取得する必要があります。
今回はSTOCKPRICEJPという関数を作成し日本企業の株価を取得しようと思います。
日本株価を取得するオリジナル関数「STOCKPRICEJP」設定手順
1.スプレッドシートのメニューバーにある「拡張機能」をクリックし、「Apps Script」を選択します。

2.スクリプトエディタを開いた後、ライブラリの右側にある+アイコンをクリックし、ライブラリを追加します。

3.スクリプトIDに「1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw」を入力し、検索します。
以下の画面が表示されたら追加を押します。

4.スクリプトエディタの画面に戻ったら、以下のソースコードを貼り付け、Ctrl+sで保存します。
function STOCKPRICEJP(code){
let url = "https://www.google.com/finance/quote/" + code + ":TYO";
let html = UrlFetchApp.fetch(url).getContentText();
let stockPrice = Parser.data(html)
.from("<div class=\"YMlKec fxKbKc\">")
.to("</div>")
.build();
return stockPrice;
}

以上で日本株の株価取得するオリジナル関数の使用準備は完了です。
日本株を取得する
スプレッドシートに以下のように記述すれば、日本株の価格を取得できます。
=STOCKPRICEJP(株式コード)

上場企業の株価以外に上場投資信託の価格も
日本の株価を取得するオリジナル関数「STOCKPRICEJP」には、もう1つメリットがあります。
実は固有銘柄の株価だけでなく、日本の上場投資信託の価格も取得可能です。
そのため、上場投資信託の価格を知りたい場合にも、今回作成したオリジナル関数が利用できます。
※たまに、投資信託の価格も取得できると書かれているHPもありますが、多分取れません。
投資信託の価格を取得
eMAXIS Slim 全世界株式(オール・カントリー)などの投資信託の価格をSTOCKPRICEJPでは取得できなかったため、オリジナル関数を作ってみました。
STOCKPRICEJPの下に以下の関数を追加します。
function getFundPrice(code) {
var url = "https://www.nikkei.com/nkd/fund/chart/?fcode=" + code ; // 日経新聞の価格情報ページのURL
let html = UrlFetchApp.fetch(url).getContentText('UTF-8');
let stockPrice = Parser.data(html)
.from("<dd class=\"m-stockPriceElm_value now\">")
.to("</dd>")
.build();
stockPrice =Number(stockPrice.replace(/[^0-9]/g,''));
return stockPrice;
}
以下のような形で追加します。
日本経済新聞ホームページから株価を取得するように作成したので日本経済新聞で使用されている投資信託コードを使用してください。

日本株価を取得するオリジナル関数の注意点
ただ、GASで作成したオリジナル関数にも注意点が2点ほどあります。
1.初回実行時、STOCKPRICEJP、getFundPrice関数を入力した後、実際に値を取得するまでに時間がかかる点です。
すぐに値が出力されず不安になりますが、値が表示されるまで待ちましょう。
2.STOCKPRICEJP、getFundPrice関数をスプレッドシートでたくさんのセルで実行すると、すべての値が取得できるのにかなりの時間がかかります。
そのため、たくさんの銘柄情報を調べるには今回の日本の株価取得関数は適していないことを留意ください。
コメント
コメント一覧 (2件)
はじめまして、ブログ記事を参考にさせていただいております。
スプレッドシートを自分でも作ってみようと思ったのですが、「STOCKPRICEJP のテキストの結果が 50000 文字の制限を超えています。」というエラーが出てきます。
この場合はどこに間違いがあるのでしょうか?
お手すきの際に教えていただけますと幸いです。
よろしくお願いいたします。
コメントありがとうございます。
50000 文字の制限の件ですが、「}」の後ろにスペースなど入っていませんか?
ご確認お願いします。