SlideShare a Scribd company logo
1 of 34
Download to read offline
まぁ!簡単!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の場合
SpreadSheet
App
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

More Related Content

What's hot

大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち
Takumi Ohashi
 

What's hot (20)

Web開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経ったWeb開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経った
 
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
 
ReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったことReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったこと
 
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみたReact Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
 
Windowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろうWindowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろう
 
Let's make rest server by golang
Let's make rest server by golangLet's make rest server by golang
Let's make rest server by golang
 
LIGでのDocker活用
LIGでのDocker活用LIGでのDocker活用
LIGでのDocker活用
 
第十一回渋谷Java
第十一回渋谷Java第十一回渋谷Java
第十一回渋谷Java
 
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
 
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
Webサイトに動きをつける、jQueryプラグインの設置方法 先生:田中 晶子
 
Front-end package managers
Front-end package managersFront-end package managers
Front-end package managers
 
CSS Living StyleGuide
CSS Living StyleGuideCSS Living StyleGuide
CSS Living StyleGuide
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた
 
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GUIツールで送る快適な Gitライフ@Creators MeetUp #29GUIツールで送る快適な Gitライフ@Creators MeetUp #29
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
 
Gaelyk
GaelykGaelyk
Gaelyk
 
One-time Binding & $digest
One-time Binding & $digestOne-time Binding & $digest
One-time Binding & $digest
 
Angularおじさんの1年
Angularおじさんの1年Angularおじさんの1年
Angularおじさんの1年
 
Androidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradleAndroidアプリ開発で活躍必至!? ビルドツールGradle
Androidアプリ開発で活躍必至!? ビルドツールGradle
 
大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち大規模プロダクト Webpack やっていく気持ち
大規模プロダクト Webpack やっていく気持ち
 

Viewers also liked

Hire a Teacher,
Hire a Teacher,Hire a Teacher,
Hire a Teacher,
meye0406
 

Viewers also liked (12)

Google apps scriptを使って業務改善
Google apps scriptを使って業務改善Google apps scriptを使って業務改善
Google apps scriptを使って業務改善
 
パフォーマンスの良いGASの書き方 Best Practice
パフォーマンスの良いGASの書き方 Best Practiceパフォーマンスの良いGASの書き方 Best Practice
パフォーマンスの良いGASの書き方 Best Practice
 
Hire a Teacher,
Hire a Teacher,Hire a Teacher,
Hire a Teacher,
 
Beautiful English words
Beautiful English wordsBeautiful English words
Beautiful English words
 
z-index !! 重なり !!
z-index !! 重なり !!z-index !! 重なり !!
z-index !! 重なり !!
 
How to make something go viral?
How to make something go viral?How to make something go viral?
How to make something go viral?
 
What is life? Life explained in quotes...
What is life? Life explained in quotes...What is life? Life explained in quotes...
What is life? Life explained in quotes...
 
Wintercatalog copy[1]
Wintercatalog copy[1]Wintercatalog copy[1]
Wintercatalog copy[1]
 
NeowizOpenConference2013-CharacterPipeline_김태근
NeowizOpenConference2013-CharacterPipeline_김태근NeowizOpenConference2013-CharacterPipeline_김태근
NeowizOpenConference2013-CharacterPipeline_김태근
 
今こそCSS 今こそfor you
今こそCSS 今こそfor you 今こそCSS 今こそfor you
今こそCSS 今こそfor you
 
そのマネジメントの課題、TAにも解決できますよ。
そのマネジメントの課題、TAにも解決できますよ。そのマネジメントの課題、TAにも解決できますよ。
そのマネジメントの課題、TAにも解決できますよ。
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
 

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

20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment
Ryo RKTM
 
KobeGTUG GAE/Java
KobeGTUG GAE/JavaKobeGTUG GAE/Java
KobeGTUG GAE/Java
takagig
 

Similar to 1019 まぁ!簡単!google apps script入門 (20)

ビジネスサイドのためのGoogle App Script 入門講座
ビジネスサイドのためのGoogle App Script 入門講座ビジネスサイドのためのGoogle App Script 入門講座
ビジネスサイドのためのGoogle App Script 入門講座
 
Easy easy2
Easy easy2Easy easy2
Easy easy2
 
golangでREST Serverを作ってみました。
golangでREST Serverを作ってみました。golangでREST Serverを作ってみました。
golangでREST Serverを作ってみました。
 
Google Product
Google ProductGoogle Product
Google Product
 
20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment
 
Google Gadgetsを看取る
Google Gadgetsを看取るGoogle Gadgetsを看取る
Google Gadgetsを看取る
 
アプリ制作マスターへの道
アプリ制作マスターへの道アプリ制作マスターへの道
アプリ制作マスターへの道
 
KobeGTUG GAE/Java
KobeGTUG GAE/JavaKobeGTUG GAE/Java
KobeGTUG GAE/Java
 
2010/8/27 TechEd2010 ライトニングトーク
2010/8/27 TechEd2010 ライトニングトーク2010/8/27 TechEd2010 ライトニングトーク
2010/8/27 TechEd2010 ライトニングトーク
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
 
Power Automate for desktopとGoogle Apps Scriptの連携について
Power Automate for desktopとGoogle Apps Scriptの連携についてPower Automate for desktopとGoogle Apps Scriptの連携について
Power Automate for desktopとGoogle Apps Scriptの連携について
 
Grails超入門
Grails超入門Grails超入門
Grails超入門
 
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイントはじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
 
Glide活用イメージ紹介20220421
Glide活用イメージ紹介20220421Glide活用イメージ紹介20220421
Glide活用イメージ紹介20220421
 
20130622_android横須賀_LT
20130622_android横須賀_LT20130622_android横須賀_LT
20130622_android横須賀_LT
 
Weekend Androidのススメ
Weekend AndroidのススメWeekend Androidのススメ
Weekend Androidのススメ
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
 
機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdf機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdf
 
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
 

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