chevron_left

Googleスプレッドシート -Google Apps Scriptでの自動化TIPS-

PREMIUM

授業の概要

■授業の内容

・Google Apps Scriptを使ってみる

・データからシート、グラフを自動で生成する

・Googleフォームの投稿を自動でSlackに通知する

・LINEボットを作成し、毎日のデータを自動送信する

 

■授業中に書かれたソースコード

/* 1.Google Apps Script(GAS)を使ってみる */
function addMoji() {
  var spreadsheet = SpreadsheetApp.getActive()
  var sheet = spreadsheet.getSheetByName("テストシート")
  sheet.getRange(1, 1).setValue("たはらさん")
}

function getMoji() {
  var spreadsheet = SpreadsheetApp.getActive()
  var sheet = spreadsheet.getSheetByName("テストシート")
  var name = sheet.getRange(1, 1).getValue()
  var string = name + "さんは赤い服をきている"
  sheet.getRange(2, 1).setValue(string)
}

/* 2.データから自動でシートを生成する */
function copySheet(){
  var spreadsheet = SpreadsheetApp.getActive()
  
  for(var i=1; i<=12; i++){
    var sheet = spreadsheet.duplicateActiveSheet()
    var date = "2019/" + i +"/1"
    sheet.getRange("A1").setValue(date)
    sheet.setName(date)
  }

}

/* 3.データから自動でグラフを生成する */
function createChart(){
  var spreadsheet = SpreadsheetApp.getActive()
  var sheet = spreadsheet.getSheetByName("家計簿2")
  var chart = sheet.newChart()
  .addRange(sheet.getRange(2,1,21,1))
  .addRange(sheet.getRange(2,2,21,2))
  .setPosition(2,15,0,0)
  .setChartType(Charts.ChartType.PIE)
  .setOption('title', '2019年1月のデータ')
  .setOption('width', 200)
  .setOption('height', 200)
  .setOption('legend', {position: 'bottom'})
  .build()
  
  sheet.insertChart(chart)
}

/* 4.Googleフォームの回答を自動でSlackに通知する */
// フォームに回答があったら、send_to_slackを呼び出す
function getform(){
  var spreadsheet = SpreadsheetApp.getActive()
  var sheet = spreadsheet.getSheetByName("フォームの回答 1")
  var values = sheet.getRange(sheet.getLastRow(), 2, 1, 3).getValues()
  var answer = values[0]
  var q1 = answer[0]
  var q2 = answer[1]
  var q3 = answer[2]

  var text = "【回答がきました!】 \n\n"
  text += "投稿者: " + q3 + "さん\n"
  text += "Q1: " + q1 + "\n"
  text += "Q2: " + q2
 
  send_to_slack(text)
}

// Slackに「text」を送る
function send_to_slack(text) {
  var payload = {
    'text' : text,
  }
  
  var options = {
    'method' : 'post',
    'contentType' : 'application/json',
    'payload': JSON.stringify(payload)
  }
  
  // ここにはSlack Appsで取得したIncoming Webhook のURLを入れる
  // 取得元: https://slack.com/intl/ja-jp/apps
  var url = 'https://hooks.slack.com/services/*************'
  UrlFetchApp.fetch(url, options)
}