■授業の内容
・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)
}