Google Apps Scriptでスプレッドシートを操作してみる ―株式投資の運用実績のグラフ化を例として―

最近初めてGoogle Apps Scriptを書いてみて、案外快適にスプレッドシートを操作することができたので、最初の取っ掛かりを得るまでのポイントを整理したい。

スクリプトエディタを開く

Googleスプレッドシートのメニューの「ツール」から「スクリプトエディタ」を選択すると、新しいタブにスクリプトエディタが開く。ここにコードを書くことで、スプレッドシートを様々に操作することができる。

f:id:fuyu77:20170515221245p:plain

onEdit(event)の中に処理を書く

onEdit(event)の中に書いた内容は、スプレッドシートが編集された際に動くので、取り敢えず最初はこの中に処理を書いておけば手軽に動かすことができる。

アクティブシートを取得する


セルの値を二次元配列として取得する

f:id:fuyu77:20170515211705p:plain

getValues()で、複数のセルの値を二次元配列として取得することができる。例えば、前回の記事で使ったこの表の値を二次元配列として取得するには、次のように書く。

(行,列)の形式で、(2,1)のセルから、(10,7)のセルまで取得するという意味だ。

この二次元配列はvalues[行][列]のように各セルの値を指定できるので、あとは思い通りに値を操作して、最後にsetValues()で配列の値をシートに再セットすれば良い。


利用例

上掲の表を更新して、先日始めた株式投資の運用実績(終値ベース)を、TOPIXの騰落率をベンチマークとしてグラフ化するスクリプトを書いてみた(グラフの作り方は前回の記事に書いた)。

f:id:fuyu77:20170515214815p:plain

Yahoo!ファイナンスポートフォリオ機能を活用して、「株式時価総額」の列と、「TOPIX」の列に手動で入力すれば、残りの部分はスクリプトが埋めてくれる仕組みになっている。