
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
【Google Apps Scriptとは】
Google社が提供するJavaScriptベースのプログラミング言語です。
略してGAS(ガス)と呼びます。
Google Workspaceの各種サービス(Googleフォーム、Googleカレンダー、Gmailなど)を自動化する目的で開発されました。
ビジネスサイドの方でも取り組むことができ、業務効率化に活用しやすい言語として注目されています。
【本コースの概要】
本コースは、Google Apps Script 40のスキル習得をゴールとして、3つの構成になってます。
Google Apps Scriptの基礎知識を学ぶ
JS(JavaScript)の基礎文法[ES2015対応]を学ぶ
5つの事例を通してGoogle Apps Scriptの活用方法を学ぶ
Q. 講師の喋りが早くて困る
・動画の再生速度を変更しましょう
Q. 講師に質問できない
・「Q&A」から質問しましょう
Q. 画面が見づらい
・解像度を確認しましょう
・全画面表示にしましょう
4つの特徴を理解することができます。
特徴1
Google Workspaceのアプリケーションの連携が容易
特徴2
ローカルPCでの開発環境構築が不要
特徴3
サーバー費用が無料
特徴4
外部アプリケーションとの連携が容易
無料アカウントと有料アカウントの違いは「セキュリティ」ということが理解できます。
プロジェクトとは、以下の2点を表す用語と理解することができます。
スクリプトファイル(.gs)の管理単位
一つ業務システム単位
GASの開発環境が準備できます。
変数とは何か
変数に値を代入、参照する方法
定数とは何か
let と constの違いは何か
let と constをどのように使い分けるのか
再代入が必要になったら、"const"を"let"に修正するのがベスト
変数のコーディング演習の解答とポイントを解説します
以下、4つのデータ型について理解します。
undefined
論理型 (Boolean)
数値型 (Number)
文字列型 (String)
以下、2つのデータ型について理解します
オブジェクト(Object)
関数 (Function)
null(Object)
について理解します
プリミティブ
構造型
構造的ルートプリミティブ
について、データ型と値を理解します
配列(Array)の使い方が理解できます。
配列の代入
配列の値を参照する方法
配列の長さを取得する方法(length)
配列の末尾を参照する方法
配列に末尾に値を追加する方法(push())
配列の末尾の値を削除する方法(pop())
主要な算術演算子の使い方を理解することができます。
+:加算
-:減算
/:除算
*:乗算
代入演算子の使い方を理解することができます。
=:代入
+=:加算値
構造化プログラミングの概要を知ることで、
if文for文などの制御構文を学ぶモチベーションをアップすることができます。
if文、条件式、比較演算子の使い方について理解することができます。
■ if文、条件式
```
if (条件式) {
実行文A・・・条件式がtrue
} else {
実行文B・・・条件式がfalse
}
```
■ 比較演算子
「条件式」に使う演算子のこと
===
!==
>
>=
<
<=
for文、for..ofの使い方を理解することができます。
■ for文
```
for (初期化式; 条件式; 加算式) {
実行文A
}
```
■ for...of
```
for (変数 of 反復可能なオブジェクト) {
実行文
}
```
function(関数)の使い方を理解することができます。
また、functionのメリットを理解することができます
■ メリット
読みやすいコードになる
修正コストを減らすことができる
部品として再利用できるようになる
アロー関数の使い方が理解できます。
また、アロー関数は、functionと比較して簡潔な構文であることが理解できます。
■ 構文
```
([引数1[, 引数2,[...,引数n]]]) => {
実行文
return 戻り値
};
```
オブジェクトとは何か、スライド、プログラミングを通して理解することができます。
よりオブジェクトについて学びたい方は、外部リソースに貼ってある本がオススメです。
■ オススメの本
「オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識 平澤 章」
今回のオブジェクトのスライドを作るにあたって、オブジェクトについて参考にいたしました。
クラス、インスタンスとは何か理解することができます。
■ クラス
オブジェクトを作成するためのテンプレート
テンプレートとは、プロパティ、メソッドの雛形を定義したもの
■ インスタンス
クラス(雛形)から生成されたオブジェクトのこと
staticメソッドの使い方について理解することができます。
■ staticメソッドとは
クラスから直接、呼び出すメソッドのこと
インスタンス化することなくメソッドを実行することができる
map()メソッドの便利な使い方について理解することができます。
■ map()メソッドとは
与えられた関数を配列のすべての要素に対して呼び出し、その結果からなる新しい配列を生成します。
filter()メソッドの便利な使い方について理解することができます。
■ filter()メソッドとは
与えられた関数によって条件に合致した要素で、新しい配列を生成します。
reduce()メソッドの便利な使い方について理解することができます。
■ reduce()メソッドとは
配列に対して関数を適用し、その処理によって配列の各値を(左から右に)一つの値にまとめます。
Mapクラスの便利な使い方について理解することができます。
■ Mapクラスとは
キーと値のペアを保持し、キーが最初に挿入された順序を覚えています。キーや値には任意の値 (オブジェクトとプリミティブ値)を使用することができます。
本講座で使うGASサービスについて理解することができます。
Google Workspace services
SpreadsheetService
GmailService
CalendarService
SlidesService
FormsService
Script services
PropertiesService
ゴールを確認できます。
Gメールを送ることができるようになります。
スプレッドシートからデータを取得できるようになります。
送信対象チェックONとOFFのデータを取得することができるようになります。
現在時刻を取得できるようになります。
スプレッドシートの値を更新できるようになります。
ダイアログボックスを表示できるようになります。
スプレッドシートからGASの関数を実行できるようになります。
スプレッドシートとカレンダーの予定連携で作成するGASを理解する
このセクションの学習に必要なスプレッドシートを準備する
連携用のカレンダーを作成する
演習1-1. 予定シートから予定データ範囲(Range)を取得する
演習1-2. 予定データ範囲(Range)から予定データ配列(Array)を取得する
演習1-3. 予定データの各値をログに出力する
演習2-1. 「[Udemy]学習用」のカレンダーIDをプロジェクトのスクリプトプロパティから取得できるようにする
演習2-2. カレンダーIDで、登録先のカレンダーを取得する
演習2-3. カレンダーに予定を登録する
演習3-1. 予定IDの有無で既存、新規を判断して、既存予定の場合はデータ更新する
演習4-1. 予定更新する前に'予定を更新してよろしいでしょうか?'というダイアログボックスをスプレッドシートに表示する
スプレッドシートからGASを実行できるようにする
以下、講座で使うクラスとメソッドについて、使い方を理解することができます。
SlidesAppクラス
openById(id)
https://developers.google.com/apps-script/reference/slides/slides-app#openbyidid
SlidesApp.Presentationクラス
getSlides()
https://developers.google.com/apps-script/reference/slides/presentation#getSlides()
appendSlide()
https://developers.google.com/apps-script/reference/slides/presentation#appendSlide()
SlidesApp.Slideクラス
remove()
https://developers.google.com/apps-script/reference/slides/slide#remove()
insertSheetsChartAsImage(sourceChart, left, top, width, height)
https://developers.google.com/apps-script/reference/slides/slide#insertsheetschartasimagesourcechart,-left,-top,-width,-height
以下、講座で使うクラスとメソッドについて、使い方を理解することができます。
FormAppクラス
openById(id)
https://developers.google.com/apps-script/reference/forms/form-app#openbyidid
FormApp.Formクラス
getItems(itemType)
https://developers.google.com/apps-script/reference/forms/form#getitemsitemtype
FormApp.Itemクラス
getTitle()
https://developers.google.com/apps-script/reference/forms/item#gettitle
asListItem()
https://developers.google.com/apps-script/reference/forms/item#aslistitem
ListItemクラス
createChoice(value)
https://developers.google.com/apps-script/reference/forms/list-item#createChoice(String)
setChoices(choices)
https://developers.google.com/apps-script/reference/forms/list-item#setchoiceschoices
FormApp.ItemTypeクラス
https://developers.google.com/apps-script/reference/forms/item-type
以下、講座で使うクラスとメソッドについて、使い方を理解することができます。
PropertiesServiceクラス
getUserProperties()
https://developers.google.com/apps-script/reference/properties/properties-service#getuserproperties
PropertiesService.Propertiesクラス
getProperty(key)
https://developers.google.com/apps-script/reference/properties/properties#getpropertykey
setProperties(properties)
https://developers.google.com/apps-script/reference/properties/properties#setpropertiesproperties
Gets a property store that only the current user can access, and only within this script.
事例5選の狙いと開発プロセスについて理解することができます
■ 狙い
システム開発のプロセスを体験し、実践力を習得すること
■ 開発プロセス
要件定義
要望と価値の理解
業務フロー作成
ユーザーストーリ作成
複数のユーザーストーリーを順に開発
設計
開発
テスト
リリース
完了
毎週、部下に週報を提出してもらうための業務に手間がかかっているので効率化したい。
動画で開発環境を準備することができます。
テキストで開発準備を理解することができます。
リリース作業としてトリガーの設定を理解することができます。
■ トリガーの設定
毎週金曜日の17時にリマインドメール送信
sendAllUsersWeeklyReportNotifyメソッド
以下、ユーザーストーリーを実現するための開発を体験することができます。
■ ユーザーストーリー
<上司>として、
<週報入力完了時に>
<定型化された週報提出メールを>
<Gメールで自分に自動送付することで>、
<週報をすぐにチェックできるように>したい。
リリース作業としてトリガーの設定を理解することができます。
■ トリガーの設定
1分毎に未送信の週報回答をチェックし、未送信の回答があれば送信する。
sendUnsentReportUsersメソッド
「週に1回、早く帰宅してOK」という社内制度の利用を促進したい。
ただし、制度の利用には、事前に上司に申請する必要がある。
■ ユーザーストーリー 1
<部下>として、
<毎週、日曜日の18時に>
<制度利用の申請を>
<カレンダーの空き時間に自動申請することで、忘れずに、心理的な負担少なく>
<上司に>
<早く帰宅する日を共有>したい。
リリース作業としてトリガーの設定を理解することができます。
■ トリガーの設定
毎週日曜日の18時に制度利用の申請を実行する
notifyEarlyRiseメソッド
会社の統計グラフ更新業務に手間がかかっているので効率化したい。
統計グラフ(就職率など)は、セキュリティの高いフォルダ内のExcelで更新している。
社内共有用の資料は、Excelからコピー&ペーストして、社内全員が閲覧できる資料(Powerpoint)としている
【Google Apps Scriptとは】
Google社が提供するJavaScriptベースのプログラミング言語です。
略してGAS(ガス)と呼びます。
Google Workspaceの各種サービス(Googleフォーム、Googleカレンダー、Gmailなど)を自動化する目的で開発されました。
ビジネスサイドの方でも取り組むことができ、業務効率化に活用しやすい言語として注目されています。
【こんな方におすすめ】
プログラミング未経験でも業務効率化に興味がある方
Googleツールを日常的に使用している方
単調な作業から解放されたいビジネスパーソン
自分で業務改善したい方
【本コースの概要】
本コースは、40のGASスキル習得をゴールとして3つのステップで進めます。
JavaScriptの基礎文法(ES2015/ES6対応)を学ぶ。
GASサービス(Gメール、スプレッドシートなど)の基本操作を学ぶ。
5つの活用事例を通してシステム開発プロセスを体験する。
【Step1. JavaScriptの基礎文法(ES2015/ES6対応)を学ぶ】
GASのベース言語であるJavaScriptの基礎文法を学習し、プログラミング基礎を固めます。
講義 + プログラミング演習 + 理解度テストの形式で、効率的なスキル習得をサポートします。
基本構文
変数・定数
データ型
配列
算術演算子
代入演算子
[コラム]構造化プログラミング
制御構文
if文と条件式、比較演算子
for...of
関数
function
アロー関数(=>)
オブジェクト
オブジェクト、プロパティ、メソッド
クラスとインスタンス
staticメソッド
便利メソッド
map()
filter()
reduce()
便利クラス
Map
【Step2. GASサービス(Gメール、スプレッドシートなど)の基本操作を学ぶ】
Step1で学んだJavaScriptの基礎を土台として、GASサービスの基本操作を学びます。
スプレッドシートの基本操作(SpreadsheetService)
Gメールの基本操作(GmailService)
カレンダーの基本操作(CalendarService)
スライドの基本操作(SlidesService)
フォームの基本操作(FormsService)
プロパティストアの基本操作(PropertiesService)
【Step3. 5つの活用事例を通してシステム開発プロセスを体験する】
Step1, Step2で学んだスキルを活かして活用事例を学び、業務効率化できる人材を目指します。
要件定義と業務フロー、ユーザーストーリ流れで進めて、開発プロセスの体験ができます。
事例① 週報提出業務の効率化
事例② 社内制度利用の効率化
事例③ 会社の統計データ更新業務の効率化
事例④ 説明会スケジュール登録業務の効率化
事例⑤ 説明会申込確認業務の効率化