狠狠撸

狠狠撸Share a Scribd company logo
プログラミングをやったことがない
ビジネスサイドのための
Google App Script
入門講座
Today’s Goal
Let’s think about today’s goal.
0
「Google App Script」で実際に動くものを作り、自動化できそうな物事が出てき
た際に、プログラミングという手段が思い出せる状態になる。
今日のゴールは?
3
今日 やること
Google App Script を利用したプログラミングの基礎を、ハンズオン形
式で行います。
● 1. Google App Scriptとは?
● 2. Google App Scriptの基本的な使い方
● 3. プログラミングの基礎の基礎
● 4. Google App Scriptを利用した業務の自動化の実践
わからないことがあれば適宜質問してください。一通り話し終わった後にも質問タイムを設けますので、そ
こで質問いただいても大丈夫です。
4
Google App Scriptとは?
ふわっと聞いたことであるはずのGoogle App Scriptについての概要を理解し、
どのようなシーンで利用すべきかを説明する。
1
● Googleが開発?提供しているプログラミング言語
○ JavaScriptをベースとした言語
● Webブラウザ上だけで動作する
○ 開発環境等の構築が不要
○ 今すぐこの場ではじめられる
● EXCELのマクロのようなもの
雑にいえば、とても簡単に始められるプログラミング言語です。
Google Apps Script(GAS)とは?
6
● プログラミングを行うために必要なPCの設定のこと
● 開発環境の構築はとても大変
○ 一つでも設定を間違えると動かない
○ 各々のPCの状態によって必要な設定が異なる
● 慣れていないと普通に丸一日かかる
初心者が開発環境の構築を行うのは難しいです。エンジニア等の専門
家と行うことを推奨します。
(補足)開発環境の構築とは?
7
● スプレッドシート等と簡単に連携できる
○ つまり、ビジネス上の処理の自動化に向いている
● わりと雑に書いても動く
○ JavaScriptの良い所を継承している
● 動作はあまり早くない
○ 大量データの処理等々にはあまり向かない
○ とはいえ最近は改善傾向
ライトにビジネス上の処理を自動化していきたい時などに向いているプ
ログラミング言語と捉えてしまって良いと思います。
GASの特徴
8
● 環境設定が不要なため、始めるためのハードルが低い
○ ボタン一つで実行できる点も魅力
● スプレッドシートやGmailなど、ビジネスサイドが普段使うものと密
接に関わるため、処理のイメージがしやすい
● JavaScriptがベースのため、今後他のプログラミング言語を勉強
するときに役に立つ
(補足)なぜ初心者にGASが良いの?
9
● Googleフォームに回答があったタイミングで、メールで通知する
● スプレッドシートが編集された場合、編集された内容をドキュメント
に出力する
● スプレッドシートが編集されたタイミングで、Slackに通知する
● 複数のシートにまたがる複雑な集計を行う
GASを使った例
10
Google App Script
の基本的な使い方
Google App Script の使い方の基礎を説明します。
2
GASのはじめ方①
12
Google Driveにログイン後、「新規 →その他→Google App Script」
GASのはじめ方②
13
スクリプトエディタが起動する。これで準備は完了。
GASのはじめ方③
14
console.log(“hogehoge”); を追記して、「実行」ボタンを押す
アクセス許可が求められた場合、許可する。
GASのはじめ方④
15
うまく実行できると、「実行ログ」に「 hogehoge」と表示される
16
Lesson 1
● 実行ログに自分の好きな文字を出力してみましょう
Extra
● 実行ログを复数个出力してみましょう
プログラミング
の基礎の基礎
プログラミングを行う上で本当に最低限必要な事項を理解し、業務の自動化に
必要なプログラミングを行う上での基礎を身につけましょう。
3
プログラミングの基礎の基礎の概念だけをかいつまんで説明していき
ます。説明するのは下記の4つだけです。
● 変数
● 繰り返し
● 条件分岐
● 関数
今回理解する概念
18
● 数学出でてきた「x = 1」と同じ理解で良い
○ ここではxが変数となる
○ 「x = 2 + 2」のように、計算結果も設定できる
● 変数に値を設定することで、下記の利点を得られる
○ 複雑な計算の結果だけを使い回すことが出来る
● 同じ変数には、別の値を入れることも出来る
○ 「x = 1」を設定した後に「x = 2」を設定する事も出来る
今はよく分からなくても、書いているうちに慣れます。
変数
19
● 変数の宣言は、プログラミング特有の話
○ 変数は宣言しないとダメという程度の理解で良い
● 「var x = 1;」のように、することで変数が宣言できる
○ 変数は宣言しないとエラーになる
● varは魔法だと思えば良い
○ varの他に、letやconstなどもある
○ この辺りは正確に理解しなくても良い
ここではひとまず、変数を使うときは「var」を使うということだけを覚え
れば大丈夫です。
変数の宣言
20
変数のイメージ
21
22
Lesson 2
● 変数に値を設定してみましょう
● 変数の内容を、実行ログに出力してみましょう
Extra
● 変数に数式の結果を設定してみましょう(ex. 2 + 2など)
● 同じ処理を指定した回数繰り返す
○ プログラミングの中ではよく使う
● 繰り返しの書き方は色々あるが、ひとまずforだけでよい
○ 「for」
○ 「while」
● 繰り返しの中で繰り返しを使うことが出来る
繰り返しの構文を覚える必要はない。
書き方がわからなければ毎回ググれば良い。
繰り返し
23
繰り返しのイメージ
24
25
Lesson 3
● for文を利用して、1?10の数字を出力してみましょう
Extra
● for文を利用して、1?10の数字を足し合わせたものを出力してみ
ましょう
● EXCEL等でもよく使う「if」のこと
● 条件が trueとなる場合とfalseとなる場合で処理を「分岐」させるこ
とが出来る
○ Trueの場合の処理だけを書くことも出来る
● 条件を比較する際は大きく下記を使う
○ 「==(等しい)」「!=(違う)」「<」「>」
● If をネスト(ifの中にifを書くこと)させることも出来る
条件分岐の書き方についても、覚える必要は特にない。
分からなければ都度調べれば良い。
条件分岐
26
条件分岐のイメージ
27
28
Lesson 4
● 定義した変数が「1」であることが正しい場合と正しくない場合で、
別々の文字を出力してみましょう
● 定義した変数の内容を変更して、条件分岐が正しく行われること
を確認しましょう
Extra
● 定義した変数が「3の倍数」であることが正しい場合と正しくない場
合で、別々の文字を出力してみましょう
○ ヒント:剰余の計算は「%」を利用する
● 関数は、インプットに対して何らかの処理を行った結果のアウト
プットを取得するためのもの
○ インプットのことを「引数(ひきすう)」と呼ぶ
○ アウトプットのことを「戻り値」と呼ぶ
● 関数には「呼び出し元」が常に存在する
インプットやアウトプットが存在しない関数もあるが、現時点では気にし
なくて良い。
関数
29
関数のイメージ
30
31
Lesson 5
● 与えられた引数に「+ 1」をする関数を作ってみましょう
Extra
● 与えられた引数が「奇数」であることを判断する関数を作ってみま
しょう
● 複雑な処理をひとつの「まとまり」として管理できる
○ プログラムは、長くなると読みづらくなる
○ 関数を利用することで、プログラムを「意味ごとのまとまり」に
分割して管理することが出来る
● 関数は使い回すことが出来る
○ 同じ処理を何度も書く必要がなくなる
関数を使わなくともプログラムは書くことが出来ますが、関数を使うこと
でプログラミングの幅が広がっていきます。
関数を使うメリット
32
(補足)デバッグ
33
止めたい行の左側を押してブレークポイント(止める場所)を設定した上で
「デバッグ」として実行すると、処理を途中で止めることが出来る
34
Lesson 6
● 1?10のうち、すべての奇数を出力してみましょう
○ ヒント:条件分岐、関数、繰り返し
Extra
● 1?10のうち、すべての偶数を出力する処理に修正してみましょう
○ 考えてみよう:急な仕様変更で「奇数ではなく偶数」と言われ
た場合、あなたならどうしますか?
Google App Scriptを利用し
た業務の自動化の実践
ここからは一歩進み、ケーススタディを通じてGASを利用した業務の自動化を実
践していきます。
4
● 営業のAさんは、スプレッドシートに記載された10人の顧客に対し
て、毎日手動でメールを送っている
○ 顧客情報の漏洩につながるため、CCで一斉に送る事はでき
ず、TOで一通一通送る必要がある
○ 宛名は相手の名前に変更しないと失礼にあたると考え、本
文は単純なコピー&ペーストではなく、一通一通手書きで修
正している
● これらはとても非効率なため、ボタン一つですべての顧客にメー
ルが送信出来るようにしたい
ケーススタディ
36
Q:これらを実現するためには、どう
すればよいでしょうか?
どんなことが実現出来ればAさんのタスクを自動化することが出来るか考えてみ
ましょう。
37
● スプレッドシートに記載された顧客の情報を取得する
○ 顧客の情報を管理しているスプレッドシートから情報を取得する
● メール送信する
○ 特定の顧客のメールアドレスを宛先に設定し、メールを送信す
る
● メールの本文の一部を入れ替える
○ 宛名部分を特定の顧客名に修正する
必要そうなこと
38
● スプレッドシートに記載された顧客の情報を取得する
○ 顧客の情報を管理しているスプレッドシートから情報を取得する
→ GASで出来ます!
● メール送信する
○ 特定の顧客のメールアドレスを宛先に設定し、メールを送信す
る → GASで出来ます!
● メールの本文の一部を入れ替える
○ 宛名部分を特定の顧客名に修正する → GASで出来ます!
必要そうなこと
39
ここからは、これらの処理を
一つずつ実装していきます
40
● GASにはスプレッドシートの値を取得するための「関数」が準備され
ています
○ その関数を使うことで値を取得します
● この関数の使い方は少し難しいので、深く考えずに関数をそのまま
使いましょう
○ 「関数の中身」を知る必要がないということは、関数を利用する
ひとつのメリットです
スプレッドシートの値を取得
41
シート取得のイメージ
42
43
Lesson 7
● GASを利用して、スプレッドシートのA1セルの値を取得してみましょう
Extra
● 础1セル以外のセルの値を取得してみましょう
● GASにはメールを送信するための「関数」が準備されています
○ スプレッドシートの値を取得したときと同様に、その関数を使うこ
とでメールを送信します
● こちらも同様に、関数の中身を理解する必要はありません
メールを送信する
44
メール送信のイメージ
45
簡単ですね!
アクセスの許可を求められた場合は許可して下さい。
46
Lesson 8
● GASを利用して、自分にメールを送ってみましょう
○ 注意:本当にメールが送信されます。宛先のメールアドレスには
気をつけましょう。
Extra
● メールのタイトルや本文を変更してみましょう
47
Lesson 9
● ここまで習ってきたことを利用して、「スプレッドシートに記載された10
人の宛先に対してメールを送るプログラム」を作成してみましょう
Extra
● メール本文を、「宛名 + 本文」の形に変更し、10通それぞれ違う宛名
で送信してみましょう
● メールの本文をランダムで変更してみましょう
● 宛先が「gmail.com」ドメインの場合はメールを送信しないような制御
を入れてみましょう
● 毎日定期的にメールを送信するような仕組みを設定してみましょう
● 普段の自分の業務で、自動化出来る業務を考えてみましょう
Next
48
49
Thanks!
Any questions?

More Related Content

ビジネスサイドのためのGoogle App Script 入門講座