見出し画像

エクセルではなく、スプレッドシートで株価を自動取得( 1分おきに) ~GoogleFinance関数ではなくimpotXML関数を使用~ その2

2017.8.25の記事です。

上記のサイトからの転記です。
画像も掲載してあり、上の方が見やすいと思います。


importXML関数の使い方は学びました。
https://note.com/24601/n/nea6e07f60b69

次が本題の自動取得に移ります。
スプレッドシートのスクリプトを使用します。
スクリプトが分からない場合は前の記事
https://note.com/24601/n/n98ae7548d919
を流し読みして下さい。

スクリプトの入力画面に

function importXML() {
 var sheet = SpreadsheetApp.getActiveSheet();
 sheet.getRange('A1')
         .setFormula('=IMPORTXML("https://www.google.com/finance?q=TYO:7203","//*[@id=\'ref_674938_l\']")'); 
}


をコピペして下さい。

◆ここで注意があります。importXML関数の中のXPathの部分ですが、

//*[@id=\'ref_674938_l\']

です。

google financeのページで、chromeのディベロッパーツールから得られるXPathは

//*[@id="ref_674938_l"]

でした。(分からない方はこちらへ)

スプリクトはjavascriptというプログラミング言語で描かれているそうです。
ここではシングルクオーテーションを使用したいときに、\バックスラッシュを前に付けるきまりみたいです。

なのでchromeのディベロッパーツールから得たXPathの"ダブルクオーテーションの部分を
\'に変更してimportXML関数の中に入れましょう。

◆あとは、自動習得の設定をするだけです。
以下は再掲です。

"コード.gs"と書いてあるタブの上にある、時計のマークをクリック

すると

というウインドウが出現する。赤枠をクリック

と変わる。
赤枠内の青枠部は、今回は"importXML"を選択します。

時間主導型 → 分タイマー → 1分ごと

と変更し、フロッピーディスクのマークを押し、スクリプトを保存して完了です。

スプレッドシートに戻ると指定したセルに1分おきに自動で株価が更新されています。

ただ、1分おきに更新していると、gmailの方に更新し過ぎですよとメールが来ます。

この記事が気に入ったらサポートをしてみませんか?