非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Google Apps Scriptでスプレッドシート上にグラフを作成する

   

Googleスプレッドシート上のデータからグラフを自動生成するマクロ(Google Apps Script)についてです。

Google Apps ScriptはExcelマクロよりも出来ることに限りがありますが、グラフの生成は対応できています。

今回はグラフを描く基本的なマクロと、為替データからローソク足チャートを描くマクロについて紹介します。

[ad#top-1]

基本的なグラフを描くプログラム

スプレッドシート上にこのようなデータがあったとします。A3:B14の範囲でGoogle Apps Scriptで右のようなグラフを生成したいと思います。

 

こちらがソースコードです。

function createChart() {
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  var chart = sheet.newChart()
    .asColumnChart()
    .addRange(sheet.getRange('A3:B14')) //データの範囲
    .setPosition(5, 5, 42, 33) //グラフのポジションとサイズ
    .setOption('legend.position', 'none') //凡例を非表示
    .build();
  sheet.insertChart(chart);
}
 

 

4行目の.asColumnChart().asLineChart()に変えると折れ線グラフになります。

 

setOptionメソッドを使ってグラフを編集することができます。以下が例です。

.setOption('series.0.pointSize', 7) //ポイントサイズ
.setOption('series.0.lineWidth', 2) //折れ線の太さ
.setOption('series.0.color', '#ff0000') //カラー
.setOption('legend.position', 'none') //凡例を非表示
 

 

これを追加して実行すると以下のように折れ線グラフのデザインが変わりました。

 

為替データからローソク足チャートを作る

最後に為替データからローソク足チャートを作ります。↓こんな感じです。

 

ソースコードはこちら。項目軸→安値→高値→終値→始値の順でデータを追加していきます。

function createCandle(){
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  var chart = sheet.newChart()
    //ローソク足チャート
    .setChartType(Charts.ChartType.CANDLESTICK)
    .addRange(sheet.getRange('A1:A61')) //項目軸
    .addRange(sheet.getRange('D1:D61')) //安値
    .addRange(sheet.getRange('B1:B61')) //高値
    .addRange(sheet.getRange('E1:E61')) //終値
    .addRange(sheet.getRange('C1:C61')) //始値
    .setPosition(5, 5, 40, 30)
    .setOption('series.0.color', '#ff0000') //グラフの色
    .setOption('hAxis.textStyle.fontSize', 0) //横軸ラベルを消す
    .build();
  sheet.insertChart(chart);
}
 

 

[ad#ad-1]

スポンサーリンク

 - Google Apps Script, Google Dirve