34
まぁ!簡単!Google Apps Script入門 2016.10.19 1

1019 まぁ!簡単!google apps script入門

Embed Size (px)

Citation preview

Page 1: 1019 まぁ!簡単!google apps script入門

まぁ!簡単!Google Apps Script入門

2016.10.19

1

Page 2: 1019 まぁ!簡単!google apps script入門

自己紹介

■コスゲタツヤ (@keinkosuge)

・ブログ「Arrown」やってます。

・フリーランス活動中

・Schoo「Google Apps Script入門」授業担当講師

・G’s Academyトレーナー

・最近のブームは醤油

2

Page 3: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptとは?

プログラムを使って、各Googleアプリケーションを制御したり、連動・連携させたり、自

由自在に操ったりすることができるのがGoogle Apps Script!

3

Page 4: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptのいいところ

・無料

・環境構築が簡単(ネットとGoogleアカウントがあればOK)

・Google Spread Sheetはエクセルの関数も使える。

・JavaScriptベースなので、JavaScriptがわかっている人は更に敷居が低い。

わかっていなくても、学ぶことで他のことにも応用が効く。

(Webサイト制作・OS Yosemite以降のAppleScriptなど)

4

Page 5: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptのデメリット

(昔に比べて増えたけど)

まだまだ情報が少ない・・・

日本語の情報が少ない・・・

5

Page 6: 1019 まぁ!簡単!google apps script入門

Google Apps Script立ち上げてみる

6

Page 7: 1019 まぁ!簡単!google apps script入門

1、スクリプトの実行

2、デバックボタン

3、関数の選択

4、ログが入ってる

5、トリガー設定

↑スクリプトファイル

↑スクリプトを実際に記載するところ。

↑①

↑②

↑③

↑④

↑⑤

7

Page 8: 1019 まぁ!簡単!google apps script入門

Google Apps Scriptは

仕事の課題解決・効率化に役立つ

8

Page 9: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptでルーティンワーク撃沈その1

【抱えていた課題】

・授業予約にGoogle Formを頻繁に使用していたが、自動返信メールがデフォルトで

は実装されていないため、予約者から

「私ちゃんと予約されていますか??」

というお問い合わせが、電話・メールなどで結構あった。

→余計な時間を取られることに・・・

9

Page 10: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptと私の出会い

以前勤務していたWebの学校での事務仕事。

とってもとっても仕事が忙しくなり、

仕事でのミス連発・・・

10

Page 11: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptと私の出会い

エクセルとか、ぶっちゃけSUM関数くらいしか

わかってないしな・・・

VBAとかもなんだか難しそう・・・

11

Page 12: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptでルーティンワーク撃沈その1

■解決法

・Google Apps Scriptを使って自動返信メールを設定

予約状況確認の問い合わせがなくなった。

かつ、定員内の場合とキャンセル待ちの場合で自動返信の文面を変えることにより、

現況を伝えることが可能になった。

12

Page 13: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptでルーティンワーク撃沈その2

【抱えていた課題】

・申し込みフォームを作ることが多々あり。作成は完全アナログ。

毎月微妙にフォーマットが違うことから、必ず毎月フォーマット修正をしなければなら

ず、コピペミスなどが起きることも少なくなかった。

(まあ、ちゃんとやればいい話なんですが…)

13

Page 14: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptでルーティンワーク撃沈その2

【Scriptによる自動化のメリット】

Google Apps Scriptによってフォーマットの自動作成機能を実装。

ワンクリックで自動的に翌月のフォーマットが作成できるようになり、

コピペミスが0になり、作成も早くなった。

14

Page 15: 1019 まぁ!簡単!google apps script入門

まずはSpreadSheetから始めよう

15

Page 16: 1019 まぁ!簡単!google apps script入門

SpreadSheetをデータベースに

16

Page 17: 1019 まぁ!簡単!google apps script入門

Google Apps Scriptを扱う上での

便利な考え方

17

Page 18: 1019 まぁ!簡単!google apps script入門

■Google Apps Scriptを使うための考え方

1、命令したいモノ(どこに命令したい?)を指定

2、命令(どんな命令をしたい?)の内容を記載する

18

Page 19: 1019 まぁ!簡単!google apps script入門

■A1のセルの文字色を赤に変える!

命令したい場所

→セルA1

命令したい内容

→セルの色を赤色にしてちょーだい!

たとえば

hogehoge

19

Page 20: 1019 まぁ!簡単!google apps script入門

Speread Sheetの場合

SpreadSheetApp

Spreadsheet

FormApp

sheet

range(cell)

CalenderApp GmailApp

GoogleApps

※セルA1 20

Page 21: 1019 まぁ!簡単!google apps script入門

■スプレッドシートのとあるデータの「セルA1」を指定する場合

1、どのGoogleアプリケーションに命令するの? → SpreadsheetApp(Google

Spread Sheet)

2、(スプレットシートなら)どのファイルに命令するの?

3、指定したファイルのどのシート(タブ)に命令するの?

→ getActiveSheet() or getSheetByName(“シート1");

4、指定したシートのどのセル(Range)に命令したいの?

→getRange(“A1”)

ここまでやって、目的のセルにたどり着ける。

21

Page 22: 1019 まぁ!簡単!google apps script入門

var mysh =SpreadsheetApp.getActiveSpreadsheet();var AcSheet = mysh.getActiveSheet();var ranges = AcSheet.getRange(“A1”);ranges.setBackground(”red”);

22

Page 23: 1019 まぁ!簡単!google apps script入門

Google Calendarの場合

■Googleカレンダーの場所指定の概念

23

CalendarApp

Calendar

CalendarEvent

タイトル、時間等

都道府県

(東京都)

市町村(区)

渋谷区

地区名

(道玄坂)

番地

(1-1-1)

Page 24: 1019 まぁ!簡単!google apps script入門

Gmailの場合

■Gmailの「場所指定」の概念

24

GmailApp

GmailThread

GmailMessage

都道府県

(東京都)

市町村(区)

渋谷区

地区名

(道玄坂)

label

Page 25: 1019 まぁ!簡単!google apps script入門

Google Driveの場合(注意)

■Google Driveの「場所指定」の概念

25

DriveApp

Folder

File

都道府県

(東京都)

市町村(区)

渋谷区

※共有設定等Permisson

User

地区名

(道玄坂)

これとは別にややこしいのが

FileIteratorとFolderIterator

Page 26: 1019 まぁ!簡単!google apps script入門

Google Driveの場合(注意)

■Google Drive内の特定のフォルダに何か命令をしたい時の場所指定

○ var data = DriveApp.getFileById(“ファイルのID”);

→直接目的のファイルに到達、場所指定完了。

(※でもいきなりファイルの IDがわかることはあまりないのでちょっと非現実的)

× var data = DriveApp.getFilesByName(“ファイル名”);

→直接目的のファイルに到達できない。

26

Page 27: 1019 まぁ!簡単!google apps script入門

Google Driveの場合(注意)

var data = DriveApp.getFilesByName(“ファイル名”);

→FileIteratorという、独特なデータ形式を取得。

※FileIterator(FolderIterator)該当データが1つしかなくても、複数データがあるかのごとく動く。

27

Page 28: 1019 まぁ!簡単!google apps script入門

FileIterator,FolderIteratorについて

①FileIterator内のFileを1つ1つチェックして、「場所指定」。そして、命令していく。

②命令が終わったら次のファイルがあるかを探す(※ hasNext())。

あれば命令の繰り返し、なければチェック終了。

28

File File File

①場所指定・命令 ②次の場所を探す 次のファイルがなければ、チェック終了。

×

Page 29: 1019 まぁ!簡単!google apps script入門

それでもやっぱり難しいなぁという方

29

Page 30: 1019 まぁ!簡単!google apps script入門

Google Apps Script アドオン機能について

■アドオンって??

Google Appsをより便利に使う機能がまとまったセット。

(JavaScriptやWordpressが分かる人なら、プラグインとほぼ同意です!)

色々な人(今は海外の人が多数)がGoogle Apps Scriptを使って作った

便利機能セットが公開されています。

30

Page 31: 1019 まぁ!簡単!google apps script入門

有名なのはGoogle Analytics

31

Page 32: 1019 まぁ!簡単!google apps script入門

まとめ

32

Page 33: 1019 まぁ!簡単!google apps script入門

Google Apps Scriptを楽しく便利に学ぶには

1、まずはSpreadSheetから始めよう

2、ルーティンワークをGASで解消してみよう

3、「命令する場所の指定」がちゃんとできれば勝ったも同然

33

Page 34: 1019 まぁ!簡単!google apps script入門

ありがとうございました。

34