以前、Google Financeのサイトから日本株の株価を取得してGoogleスプレッドシートに表示する方法の記事を書いた。
Googleスプレッドシートの「AppScript」を使えば日本株の株価を取得できる。
だがしかし、わたしが持っているAndroidのタブレット端末ではエラーが出る。
エラーの内容
日本株の株価は取得できる。
だが、保有している銘柄の時価の計算ができないのだ。
原因は、取得した株価の先頭に「¥」マークがついているからだ。
取得した株価が1,000円だとすると「¥1,000」という文字列を取得する(¥は半角)。
この株を100株持っているとすると、時価として、
1,000 円/株 × 100 株 = 100,000 円
と計算してほしい。
が、GoogleスプレッドシートをAndroidのタブレット端末で開くと「¥1,000」は数字ではなく文字と認識してしまい、計算できずにエラーとなるのだ(WindowsのPCなら¥がついていても数字と認識するようで問題ないのだが)。
¥マーク削除
Googleスプレッドシートで計算するには取得した株価の先頭にある「¥」を削除しないといけない。
日本株の株価取得をするのに参考にさせてもらった次のサイトをもとに、「¥」マークを削除するソースコードを作成した。
参照スプレッドシートで日本株の株価や投資信託の価格の取得方法(GASオリジナル関数) (AutoWorker〜Google Apps Script(GAS)とSikuliで始める業務改善入門)
コードは次のとおり。
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.replace("¥","");
}
最終行の「return stockPrice.replace(“¥”,””)」で株価の先頭についている「¥」マークを削除している。
株価を表示させたいセルに、
=STOCKPRICEJP(数字4桁の株価コード)
と入力する。
株価取得がエラーとなったときにエラー表示させたければ、セルに、
=IFERROR(STOCKPRICEJP(数字4桁の株価コード),”エラー”)
と入力すれば、株価が取得できないとき、セルに「エラー」と表示される。