スプレッドシートで日本株の株価や投資信託の価格の取得方法(GASオリジナル関数)
スプレッドシートに用意されている関数では、アメリカの株価を取得できるものの、日本の上場企業の株価や投資信託の価格を取得できません。
そこで、スプレッドシートで日本の株式会社の株価や投資信託価格を取得する方法と設定手順を解説します。
スプレッドシートで日本企業の株価が取得したい
表計算のGoogleスプレッドシートを使い、日本の上場企業の株価を取得したいニーズがあります。
スプレッドシートで日本の株価情報を取得できれば、資産管理や投資分析にも活用できます。
ただ、残念ながら、スプレッドシートに標準で備わっている関数では、日本の株価を取得ができません。
GOOGLEFINANCE関数は日本株に非対応
スプレッドシートにはGOOGLEFINANCEという関数が用意されています。
このGOOGLEFINANCE関数のリファレンスには、「Google Financeから現在や過去の証券情報を取得します。」とあります。
このGOOGLEFINANCE関数を使えば、日本の上場企業の株価を取得できるかもと思い、試される方も多いです。
しかしながら、GOOGLEFINANCE関数で取得できるのは主に米国株式の株価で、日本株の株価には対応していません。
グーグルファイナンスには日本株の株価情報も掲載されているものの、GOOGLEFINANCE関数は非対応となっていて、現状は取得不可能です。
スプレッドシートのオリジナル関数で日本株の株価取得
では、スプレッドシートで日本企業の株価を取得する方法は存在しないかと言えば、実は存在します。
Google Apps Script(GAS)でスプレッドシートのオリジナル関数を作成し、株式情報サービスから日本株の株価情報を取得すれば、実現可能です。
先程も紹介した通り、GOOGLEFINANCE関数では日本株の情報を取得できないものの、グーグルファイナンスには、日本株の情報が掲載されています。
グーグルファイナンスから日本株式の株価を取得するオリジナル関数をGASで作成すれば、スプレッドシートで通常の関数と同様に利用できます。
日本の株価を取得するスプレッドシートのオリジナル関数
そこで、日本の上場企業の現在の株価を取得するスプレッドシートのオリジナル関数を作成してみました。
=STOCKPRICEJP(code)
引数のcodeに日本株の証券コードを指定すると、銘柄コードの日本企業の最新の株価が表示されます。
※取得株価はグーグルファイナンスに掲載されている株式データのため、タイムラグが発生するケースがあります。
引数の証券コードが数字でない場合や、存在しない証券コードの場合は「#VALUE!」と出力されます。
一度スプレッドシートのファイルに設定すれば、そのファイル上で何度でも日本株の株価を取得するSTOCKPRICEJP関数が実行可能です。
日本株価を取得するオリジナル関数「STOCKPRICEJP」設定手順
日本の上場企業の株価を取得する、スプレッドシートのオリジナル関数「STOCKPRICEJP」の設定手順を解説します。
Google Apps Script(GAS)で作成したオリジナル関数ですが、スプレッドシート利用者にも分かりやすく図説していきます。
1.株価を取得するオリジナル関数を利用したいスプレッドシートを開きます。
2.スプレッドシートのメニューバーにある「拡張機能」をクリックし、「Apps Script」を選択します。
3.スクリプトエディタを開いた後、ライブラリの右側にある+アイコンをクリックします。
4.スクリプトIDに「1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw」を入力し、検索ボタンをクリックします。
5.スクリプトエディタの画面に戻ったら、以下のソースコードを貼り付け、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;
}
以上の5Stepで日本株の株価取得するオリジナル関数の使用準備は完了です。
スクリプトエディタのタブを終了し、スプレッドシートで試しにトヨタ自動車(証券コード:7203)の株価を取得してみます。
無事、トヨタ自動車の現在の株価を取得できました。
日本株式の株価を取得するオリジナル関数STOCKPRICEJPの引数を変更すれば、他の上場している会社でも同様に最新の株価が取得できます。
上場企業の株価以外に投資信託の価格も
日本の株価を取得するオリジナル関数「STOCKPRICEJP」には、もう1つメリットがあります。
実は固有銘柄の株価だけでなく、日本の投資信託の価格も取得可能です。
そのため、投資信託の価格を知りたい場合にも、今回作成したオリジナル関数が利用できます。
日本株価を取得するオリジナル関数の注意点
ただ、GASで作成したオリジナル関数にも注意点が2点ほどあります。
1つ目は初回実行時、STOCKPRICEJP関数を入力した後、実際に値を取得するまでに時間がかかる点です。
すぐに値が出力されず不安になりますが、値が表示されるまで待ちましょう。
2つ目はSTOCKPRICEJP関数をスプレッドシートでたくさんのセルで実行すると、すべての値が取得できるのにかなりの時間がかかります。
そのため、たくさんの銘柄情報を調べるには今回の日本の株価取得関数は適していないことを留意ください。
設定簡単な日本株価取得の独自関数の完成品を販売
ここまでスプレッドシートGoogle Apps Script(GAS)で日本株の株価を取得する方法を紹介しました。
ただ導入するには、スプレッドシートからスクリプトエディタを開き、スクリプトを貼り付け、ライブラリを追加する必要がありました。
そこで、GASに詳しくない人でも利用できるよう、GASスタンドに完成品を出品しました。
日本の上場会社の株価・投資信託価格を取得するスプレッドシート独自関数(GASスタンド)
ご購入いただくとスプレッドシートが共有されるので、コピーを作成して使用すれば、GASスクリプトのセットアップの手間なく、日本株を取得できます。
プログラミング未経験の方でも特に複雑な設定不要で、簡単に日本株価を取得できます。
スプレッドシートで日本株の情報を取得したい場合にぜひ入手してみてください。
noteでも有料販売を行っています↓
https://note.com/yama_gas/n/ne4df72428346
まとめ・終わりに
今回、スプレッドシートで日本株式の株価を取得できるオリジナル関数と、その導入方法を紹介しました。
残念ながらスプレッドシートでは米国株式は標準関数で取得できますが、日本株式の株価は取得できません。
そこで、Google Apps Script(GAS)で日本株式の株価情報をグーグルファイナンスから取得するオリジナル関数「STOCKPRICEJP」を作成しました。
STOCKPRICEJPの導入方法も解説しているので、日本の上場企業の株価を取得したい場合や、投資信託の価格を知りたい場合に活用してみてください。
ディスカッション
コメント一覧
分かりやすく便利な機能のご紹介ありがとうございます。
無事にスクリプトエディタで株価を取得することができました。
しかし、スプレッドシートに¥1,000.00(¥マーク込み)で表示され、表計算が出来なくて困っています。
数字のみで表示されるようにするには、どのように変更すれば良いでしょうか?
コメントありがとうございます。
\マーク込みでも四則演算はできるようですが、もしご不要の場合は8行目のコードを以下のように変更いただけますでしょうか?
○変更前
return stockPrice;
●変更後
return stockPrice.replace(“¥”,””);
上記変更で¥マークは表示されなくなります。
手順5のコードを張り付けたのですが、「構文エラー:SyntaxError: Invarid or unexpected token 行:2 ファイル:コード.gs」の赤四角メッセージが表示され実行できませんでした。初心者で対応方法が分からず、ご教授ください。
ご連絡ありがとうございます。失礼いたしました。
記事のコードにあるダブルクオーテーションが全角に変換されていたため、エラーしておりました。
下記のGithubURLにそのままコピペ可能なソースコードを格納していますので、こちらをコピペください。
https://github.com/Tyamamoto1007/SpreadsheetCustomFunction_getJapanStockPrice_byGoogleAppsScript
早々のご回答ありがとうございます。記載のURLをコピペでアクセスしましたがページが開かなかったので、張り付けたコードを手で半角に置き換えた結果上手くできました。
たびたび失礼いたしました・・・
githubURLが非公開でしたので、公開に切り替えています。
ダブルクオーテーションを全角から半角に置き換えることで実行できるようになり、よかったです。
実施簡単な方法を紹介していただきありがとうございます。
これはGOOGLEの株時価検索の結果を表示と思いますね、スプレッドシートの結果は一番近い結果ですが、自動更新ではないと思います。
これからスプレッドシート過去のdailyの結果(open, high, low,close, volumeの情報)を取得方法がありませんか。
ヤマタケさん、とても有益な情報をありがとうございます。
日本個別株の株価表示できました!
記事の中に、投資信託にも対応できるとありましたが、投資信託の場合、何を入力すれば個別株同様、価格表示できますか?いろいろ試してみましたが、どうにもできないので、質問させていただきました。
ご教授ください。よろしくお願いします。
ちくわ様
本記事で紹介している方法での投資信託の価格表示ですが、以下のサイトにある東証上場銘柄一覧のエクセルファイルに掲載されている投資信託の4桁コードを入力いただくと、価格が表示されます。
https://www.jpx.co.jp/markets/statistics-equities/misc/01.html
取得したい投資信託のコードを確認いただき、実行してみていただければと思います。
公開されているサイトの例を参考にしてとりあえずGoogleFinanceで日本株の株価データをGASで取得できるようになりました。大感謝です!今ExcelVBAでやっている株価データ取得をGASでスプレッドシートに置き換えをトライし始めたところです。これから4値(始値、高値、安値、終値)と出来高データを取得したいと思っていますが、GAS自体も初めてなので四苦八苦。
販売されているヤマタケ様のソフトはこれらのデータも取得できるのでしょうか。私はその日の確定したデータしか使わないので、リアルタイムでなくても構いません。
GoogleFinanceの画面には終値・高値と安値しかなく、出来高が見えませんが、HTMLデータを見ると、4値と出来高らしいデータはあるように見えますが、うまく抽出できません。
Toshi様
コメントありがとうございます。販売しているツールは今回紹介した内容をそのまま使えるようにプログラムを少し改良しているもののため、現在価格しか表示できません。
HTMLデータを見る限り、終値、高値・安値しかないため、始値は取得できない想定です。
グラフ部分から取得できればよいのですが、動的に生成されているため、スクレイピングが困難かと思います。
>HTMLデータを見ると、4値と出来高らしいデータはあるように見えますが、うまく抽出できません。
上記部分がどちらになるか、例えばトヨタですとHTMLデータのどの部分かご教示いただけないでしょうか。
https://www.google.com/finance/quote/7203:TYO?hl=ja&gl=JP
分かりやすく便利な機能のご紹介ありがとうございます。
無事にスクリプトエディタで株価を取得することができました。
大変助かっています。
しかし、スプレッドシートに¥1,000.00で表示されていますが、
小数点以下(.00部分)を表示させなくするにはどうしたらいいですか?
seia様
無事GASのスクリプトエディタにGASのカスタム関数を設定して、スプレッドシートに株価を取得できたとのこと、よかったです。
小数点以下ですが、時折、.50という株価もあるため、小数点自体をなくすことは難しいと思います。
セルの処理が必要ですが、当該セルに×1する数式を設定すると、スプレッドシート上で不要な小数点をなくすことが可能です。
(例えばC2セルに取得した株価が入っている場合、「=C2*1」)
こちらお試しいただければと思います。
知りませんでした、Googleスプレッドシートは色々拡張出来るのですね、
有難うございました。
株式の売買記録を付けたいのですが良い方法は有りませんか?チャットGPIでGooglスプレッドシートを勧められました。
いつもお世話になっております。
恐れ入ります、証券コードに応じて決算発表予定日も取得できるようになると非常にありがたいと思うのですが、難しいでしょうか。
(決算期待に乗って買いつつ決算発表の前に売り抜けたり、決算発表がよければすかさず買いを入れたりするため、重要視しております)