■授業の内容
・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) }
スクー放送部
残り枚数:- 枚