Upload
tatsuya-kosuge
View
195
Download
2
Embed Size (px)
Citation preview
まぁ!簡単!Google Apps Script入門
2016.10.19
1
自己紹介
■コスゲタツヤ (@keinkosuge)
・ブログ「Arrown」やってます。
・フリーランス活動中
・Schoo「Google Apps Script入門」授業担当講師
・G’s Academyトレーナー
・最近のブームは醤油
2
■Google Apps Scriptとは?
プログラムを使って、各Googleアプリケーションを制御したり、連動・連携させたり、自
由自在に操ったりすることができるのがGoogle Apps Script!
3
■Google Apps Scriptのいいところ
・無料
・環境構築が簡単(ネットとGoogleアカウントがあればOK)
・Google Spread Sheetはエクセルの関数も使える。
・JavaScriptベースなので、JavaScriptがわかっている人は更に敷居が低い。
わかっていなくても、学ぶことで他のことにも応用が効く。
(Webサイト制作・OS Yosemite以降のAppleScriptなど)
4
■Google Apps Scriptのデメリット
(昔に比べて増えたけど)
まだまだ情報が少ない・・・
日本語の情報が少ない・・・
5
Google Apps Script立ち上げてみる
6
1、スクリプトの実行
2、デバックボタン
3、関数の選択
4、ログが入ってる
5、トリガー設定
↑スクリプトファイル
↑スクリプトを実際に記載するところ。
↑①
↑②
↑③
↑④
↑⑤
7
Google Apps Scriptは
仕事の課題解決・効率化に役立つ
8
■Google Apps Scriptでルーティンワーク撃沈その1
【抱えていた課題】
・授業予約にGoogle Formを頻繁に使用していたが、自動返信メールがデフォルトで
は実装されていないため、予約者から
「私ちゃんと予約されていますか??」
というお問い合わせが、電話・メールなどで結構あった。
→余計な時間を取られることに・・・
9
■Google Apps Scriptと私の出会い
以前勤務していたWebの学校での事務仕事。
とってもとっても仕事が忙しくなり、
仕事でのミス連発・・・
10
■Google Apps Scriptと私の出会い
エクセルとか、ぶっちゃけSUM関数くらいしか
わかってないしな・・・
VBAとかもなんだか難しそう・・・
11
■Google Apps Scriptでルーティンワーク撃沈その1
■解決法
・Google Apps Scriptを使って自動返信メールを設定
↓
予約状況確認の問い合わせがなくなった。
かつ、定員内の場合とキャンセル待ちの場合で自動返信の文面を変えることにより、
現況を伝えることが可能になった。
12
■Google Apps Scriptでルーティンワーク撃沈その2
【抱えていた課題】
・申し込みフォームを作ることが多々あり。作成は完全アナログ。
毎月微妙にフォーマットが違うことから、必ず毎月フォーマット修正をしなければなら
ず、コピペミスなどが起きることも少なくなかった。
(まあ、ちゃんとやればいい話なんですが…)
13
■Google Apps Scriptでルーティンワーク撃沈その2
【Scriptによる自動化のメリット】
Google Apps Scriptによってフォーマットの自動作成機能を実装。
ワンクリックで自動的に翌月のフォーマットが作成できるようになり、
コピペミスが0になり、作成も早くなった。
14
まずはSpreadSheetから始めよう
15
SpreadSheetをデータベースに
16
Google Apps Scriptを扱う上での
便利な考え方
17
■Google Apps Scriptを使うための考え方
1、命令したいモノ(どこに命令したい?)を指定
2、命令(どんな命令をしたい?)の内容を記載する
18
■A1のセルの文字色を赤に変える!
命令したい場所
→セルA1
命令したい内容
→セルの色を赤色にしてちょーだい!
たとえば
hogehoge
19
Speread Sheetの場合
SpreadSheetApp
Spreadsheet
FormApp
sheet
range(cell)
CalenderApp GmailApp
GoogleApps
※セルA1 20
■スプレッドシートのとあるデータの「セルA1」を指定する場合
1、どのGoogleアプリケーションに命令するの? → SpreadsheetApp(Google
Spread Sheet)
2、(スプレットシートなら)どのファイルに命令するの?
3、指定したファイルのどのシート(タブ)に命令するの?
→ getActiveSheet() or getSheetByName(“シート1");
4、指定したシートのどのセル(Range)に命令したいの?
→getRange(“A1”)
ここまでやって、目的のセルにたどり着ける。
21
var mysh =SpreadsheetApp.getActiveSpreadsheet();var AcSheet = mysh.getActiveSheet();var ranges = AcSheet.getRange(“A1”);ranges.setBackground(”red”);
22
Google Calendarの場合
■Googleカレンダーの場所指定の概念
23
CalendarApp
Calendar
CalendarEvent
タイトル、時間等
都道府県
(東京都)
市町村(区)
渋谷区
地区名
(道玄坂)
番地
(1-1-1)
Gmailの場合
■Gmailの「場所指定」の概念
24
GmailApp
GmailThread
GmailMessage
都道府県
(東京都)
市町村(区)
渋谷区
地区名
(道玄坂)
label
Google Driveの場合(注意)
■Google Driveの「場所指定」の概念
25
DriveApp
Folder
File
都道府県
(東京都)
市町村(区)
渋谷区
※共有設定等Permisson
User
地区名
(道玄坂)
これとは別にややこしいのが
FileIteratorとFolderIterator
Google Driveの場合(注意)
■Google Drive内の特定のフォルダに何か命令をしたい時の場所指定
○ var data = DriveApp.getFileById(“ファイルのID”);
→直接目的のファイルに到達、場所指定完了。
(※でもいきなりファイルの IDがわかることはあまりないのでちょっと非現実的)
× var data = DriveApp.getFilesByName(“ファイル名”);
→直接目的のファイルに到達できない。
26
Google Driveの場合(注意)
var data = DriveApp.getFilesByName(“ファイル名”);
→FileIteratorという、独特なデータ形式を取得。
※FileIterator(FolderIterator)該当データが1つしかなくても、複数データがあるかのごとく動く。
27
FileIterator,FolderIteratorについて
①FileIterator内のFileを1つ1つチェックして、「場所指定」。そして、命令していく。
②命令が終わったら次のファイルがあるかを探す(※ hasNext())。
あれば命令の繰り返し、なければチェック終了。
28
File File File
①場所指定・命令 ②次の場所を探す 次のファイルがなければ、チェック終了。
×
それでもやっぱり難しいなぁという方
29
Google Apps Script アドオン機能について
■アドオンって??
Google Appsをより便利に使う機能がまとまったセット。
(JavaScriptやWordpressが分かる人なら、プラグインとほぼ同意です!)
色々な人(今は海外の人が多数)がGoogle Apps Scriptを使って作った
便利機能セットが公開されています。
30
有名なのはGoogle Analytics
31
まとめ
32
Google Apps Scriptを楽しく便利に学ぶには
1、まずはSpreadSheetから始めよう
2、ルーティンワークをGASで解消してみよう
3、「命令する場所の指定」がちゃんとできれば勝ったも同然
33
ありがとうございました。
34