書籍「Google Apps Script クイックリファレンス」は大変心強い!

「Google Apps Script クイックリファレンス」(横山隆司・秀和システム刊)という書籍が2013年2月に発刊されているようなので入手しました。

国内初の本格的なGASのリファレンスブックです。いわゆる「逆引きGoogle Apps Script」とでもいうべき書籍ですね。

http://www.shuwasystem.co.jp/products/7980html/3675.html

ものすごくボリュームがあります。507ページ!

特に興味深いのは、以下の項目ですね…。Googleの公式APIドキュメントには記載がありますが、学生さんに読んでもらって分かりそうな「具体的なサンプル」は滅多に存在しませんので…。

  • 5-4 開始時間と終了時間を指定してイベントを追加するには
  • 6-14 ダッシュボードを作成するには
  • 6-17 文字列フィルタを作成するには
  • 7-12 連絡先から取得/設定できる値は
  • 8-1 テキストコンテンツを出力するには
  • 10-8 ドキュメントの末尾にリストのアイテムを追加するには
  • 10-9 ドキュメントの末尾に表を追加するには
  • 12-34 Gmailのメールから取得できる値は
  • 14-2 HTML文字列を出力するには
  • 15-1 文字列を翻訳するには
  • 17-2 1日に送信できるメールのクォータを取得するには
  • 18-21 座標から住所の情報を取得するには
  • 21-3 ScriptDbにデータを保存するには
  • 22-8 サイトにファイルキャビネットページを追加するには
  • 24-49 セルを結合するには
  • 25-9 UiInstanceを使って生成できるウィジェットは
  • 25-14 DatePickerを利用するには
  • 25-15 DateBoxを利用するには
  • 26-1 外部サイトのURLにアクセスするには
  • 26-2 OAuth設定を取得するには
  • 26-3 OAuth設定に設定する値は
  • 26-4 HTTPResponseから取得できる値は
  • 27-1 書式文字列を指定して日付を文字列に変換するには
  • 27-2 JSON文字列をオブジェクトに変換するには
  • 27-3 オブジェクトをJSON文字列に変換するには
  • 27-4 Blobオブジェクトを作成するには
  • 28-1 XML文字列を解析するには
  • 29-2 キャッシュにデータを保存するには
  • 29-3 キャッシュに保存されているデータを取り出すには
  • 30-1 Google Cloud SQLを利用するには
  • 31-2 Google Apps ScriptでBigQueryを利用するには

Google Apps Scriptクイックリファレンス

以下、公式から引用した目次です。

Chapter 1 Google Apps Scriptの概要
1-1 Google Appsとは
1-2 Google Apps Scriptとは
1-3 Google Apps Scriptでできることは
1-4 Google SpreadSheetでスクリプトを作成するには
1-5 Google Siteでスクリプトを作成するには
1-6 Google Apps Script単体プロジェクトを作成するには
Chapter 2 スクリプトエディタ
2-1 スクリプトを作成するには
2-2 スクリプトを実行するには
2-3 スクリプトの実行ログを表示するには
2-4 スクリプトをデバッグ実行するには
2-5 ブレークポイントを設定するには
2-6 作成したスクリプトをデバッグするには
2-7 スクリプトエディタで補完機能を利用するには
2-8 スクリプトエディタでプロジェクトのプロパティを編集するには
2-9 スクリプトの変更履歴を表示するには
2-10 開発したプロジェクトのスナップショットを取るには
2-11 作成したプロジェクトのプログラムをライブラリとして利用するには
2-12 ライブラリプロジェクトにコメントを反映させるには
2-13 ライブラリプロジェクトのドキュメントを見るには
Chapter 3 トリガー
3-1 トリガーとは
3-2 特定の日時にトリガーを起動するには
3-3 定期的に実行するトリガーを登録するには
3-4 スプレッドシートを開いた時に実行するトリガーを設定するには
3-5 スプレッドシートの保存時に実行するトリガーを設定するには
3-6 スプレッドシートのフォームから登録された時に実行するトリガーを設定するには
Chapter 4 Baseサービス
4-1 実行ログを出力するには
4-2 実行ログをクリアするには
4-3 現在の実行ログを取得するには
4-4 ダイアログボックスを表示するには
4-5 入力ボックスを表示するには
4-6 ログインしているユーザを取得するには
4-7 スクリプトを実行しているユーザを取得するには
4-8 スクリプトのタイムゾーンを取得するには
4-9 ユーザのメールアドレスを取得するには
4-10 ユーザのログインIDを取得するには
Chapter 5 Calendar
5-1 任意の日に終日のイベントを登録するには
5-2 任意の日に終日の拡張オプション付きイベントを追加するには
5-3 定期的な終日のイベントを追加するには
5-4 開始時間と終了時間を指定してイベントを追加するには
5-5 タイトル文字列からのquick-add機能を利用するには
5-6 開始時間と終了時間を指定した定期的なイベントを追加するには
5-7 カレンダーを作成するには
5-8 Google Calendarに設定したすべてのカレンダーを取得するには
5-9 Google Calendarに設定したすべてのマイカレンダーを取得するには
5-10 カレンダーの名前を指定してGoogle Calendarに設定したカレンダーを取得するには
5-11 IDを指定してGoogle Calendarに設定したカレンダーを取得するには
5-12 カレンダーの名前を指定してGoogle Calendarに設定したマイカレンダーのカレンダーを取得するには
5-13 カレンダーのIDを指定してGoogle Calendarに設定したマイカレンダーのカレンダーを取得するには
5-14 プライマリカレンダーを取得するには
5-15 繰り返しイベントのルールを作るには
5-16 Google Calendarに登録されているカレンダーの予定を取得するには
5-17 カレンダーに設定している色を取得するには
5-18 カレンダーの説明を取得するには
5-19 カレンダーを削除するには
5-20 終日のイベントを取得するには
5-21 IDを指定して、定期的なイベントを取得するには
5-22 カレンダーのIDを取得するには
5-23 カレンダーの名前を取得するには
5-24 カレンダーのタイムゾーンを取得するには
5-25 カレンダー設定の「リストに表示」にチェックがあるかどうかを確認するには
5-26 カレンダーがプライマリカレンダーかどうかを確認するには
5-27 カレンダーの所有者が現在のアカウントかどうかを確認するには
5-28 カレンダーの表示状態を確認するには
5-29 カレンダーの色を設定するには
5-30 カレンダーの詳細説明を設定するには
5-31 カレンダーの「リストに表示」設定を変更するには
5-32 カレンダーの名前を設定するには
5-33 カレンダーの表示状態を設定するには
5-34 カレンダーのタイムゾーンを設定するには
5-35 定期的なイベントで1日毎の繰り返し設定を作成するには
5-36 定期的なイベントで指定した回数分登録されるのを除外するには
5-37 定期的なイベントの終了日を指定するには
5-38 定期的なイベントで特定の日付には登録されないようにするには
5-39 定期的なイベントで1ヶ月毎の繰り返し設定を作成するには
5-40 定期的なイベントで1ヶ月毎の繰り返し設定を指定した回数分除外するには
5-41 定期的なイベントで1週間毎の繰り返し設定を作成するには
5-42 定期的なイベントで1週間毎の繰り返し設定を指定した回数分除外するには
5-43 定期的なイベントで1年毎の繰り返し設定を作成するには
5-44 定期的なイベントで1年毎の繰り返し設定を指定した回数分除外するには
5-45 イベントの詳細情報を取得、設定するには
5-46 定期的なイベントの詳細情報を取得、設定するには
5-47 イベントを削除するには
Chapter 6 Charts
6-1 データテーブルを作成するには
6-2 面グラフを作成するには
6-3 棒グラフを作成するには
6-4 横向きの棒グラフを作成するには
6-5 折れ線グラフを作成するには
6-6 円グラフを作成するには
6-7 散布図を作成するには
6-8 表を作成するには
6-9 グラフの表示を変更するには
6-10 グラフの表示サイズを変更するには
6-11 折れ線グラフをなめらかな曲線で表示するには
6-12 円グラフを3D表示にするには
6-13 テキストのスタイルを生成するには
6-14 ダッシュボードを作成するには
6-15 数値の範囲フィルタを作成するには
6-16 カテゴリフィルタを作成するには
6-17 文字列フィルタを作成するには
6-18 グラフのカラムを表示するかどうかを制御するには
Chapter 7 Contacts
7-1 連絡先を作成するには
7-2 連絡先グループを作成するには
7-3 連絡先を取得するには
7-4 連絡先を削除するには
7-5 すべての連絡先を取得するには
7-6 連絡先にメールアドレスを追加するには
7-7 連絡先に電話番号を追加するには
7-8 連絡先にインスタントメッセンジャーのアカウントを追加するには
7-9 連絡先にURLを追加するには
7-10 連絡先に勤務先を追加するには
7-11 連絡先に誕生日を追加するには
7-12 連絡先から取得/設定できる値は
Chapter 8 Content
8-1 テキストコンテンツを出力するには
8-2 テキストコンテンツに文字列を追加するには
8-3 テキストコンテンツに追加した文字列をクリアするには
8-4 テキストコンテンツをファイルとしてダウンロードさせるには
8-5 テキストコンテンツに文字列を設定するには
8-6 テキストコンテンツのMimeTypeを設定するには
8-7 TextOutputから取得できる値は
8-8 設定できるMimeTypeは
Chapter 9 DocsList
9-1 ファイルを作成するには
9-2 フォルダを作成するには
9-3 ファイルを取得するには
9-4 フォルダを取得するには
9-5 ファイルを検索するには
9-6 ファイルの共同編集者を追加するには
9-7 ファイルの閲覧者を追加するには
9-8 ファイルの共同編集者を削除するには
9-9 ファイルの閲覧者を削除するには
9-10 ファイルのコピーを作成するには
9-11 ファイル名を変更するには
9-12 ファイルの詳細情報を取得するには
9-13 ファイルに文字列を追加するには
9-14 ファイルに追加した文字列をクリアするには
9-15 ファイルの中身を置き換えるには
Chapter 10 Document
10-1 ドキュメントを作成するには
10-2 IDを指定してドキュメントを取得するには
10-3 アクティブなドキュメントを取得するには
10-4 ドキュメントにフッターを追加するには
10-5 ドキュメントにヘッダーを追加するには
10-6 ドキュメントの末尾に区切り線を追加するには
10-7 ドキュメントの末尾に段落を追加するには
10-8 ドキュメントの末尾にリストのアイテムを追加するには
10-9 ドキュメントの末尾に表を追加するには
10-10 ドキュメントの末尾に改ページを追加するには
10-11 ドキュメントの末尾に画像を追加するには
10-12 ドキュメントに区切り線を挿入するには
10-13 ドキュメントに段落を挿入するには
10-14 ドキュメントにリストのアイテムを挿入するには
10-15 ドキュメントに表を挿入するには
10-16 ドキュメントに改ページを挿入するには
10-17 ドキュメントに画像を挿入するには
10-18 ドキュメントの編集内容を保存するには
10-19 ドキュメントのテキストオブジェクトを取得するには
10-20 ドキュメントの本文を置換するには
10-21 ドキュメントの各種情報を取得、設定するには
10-22 ヘッダーを細かく編集するには
10-23 フッターを細かく編集するには
10-24 段落を細かく編集するには
10-25 画像を細かく編集するには
10-26 テキストを細かく編集するには
Chapter 11 Finance
11-1 株価の履歴を取得するには
11-2 株価情報の詳細を取得するには
11-3 取引データの詳細を取得するには
Chapter 12 Gmail
12-1 ラベルを作成するには
12-2 ラベル名を指定してラベルを取得するには
12-3 全てのラベルを取得するには
12-4 ラベルを削除するには
12-5 チャットの履歴を取得するには
12-6 Gmailの受信トレイのメールを取得するには
12-7 Gmailの受信トレイにある重要なメールを取得するには
12-8 Gmailのスター付きメールを取得するには
12-9 Gmailの迷惑メールを取得するには
12-10 Gmailのゴミ箱にあるメールを取得するには
12-11 Gmailのメールのスレッドを取得するには
12-12 GmailのメールIDからメールを取得するには
12-13 Gmailのメールを既読にするには
12-14 Gmailのメールを未読にするには
12-15 Gmailのスレッドを既読にするには
12-16 Gmailのスレッドを未読にするには
12-17 Gmailのスレッドを重要なスレッドにするには
12-18 Gmailのスレッドを普通のスレッドにするには
12-19 Gmailのメールをゴミ箱に移動するには
12-20 Gmailのスレッドをアーカイブ化するには
12-21 GmailのスレッドをSpamに設定するには
12-22 Gmailのスレッドを受信トレイに移動するには
12-23 Gmailのメールをリフレッシュするには
12-24 Gmailメールを検索するには
12-25 Gmailのメールをスター付きにするには
12-26 Gmailのスター付きメールのスターを外すには
12-27 Gmailのメールの件数を取得するには
12-28 Gmailのラベルにスレッドを追加するには
12-29 Gmailのラベル内のスレッドを取得するには
12-30 Gmailのラベルからスレッドを削除するには
12-31 Gmailのラベルから取得できる値は
12-32 Gmailのスレッドのメールに返信するには
12-33 Gmailのスレッドから取得できる値は
12-34 Gmailのメールから取得できる値は
12-35 Gmailのメールを転送するには
Chapter 13 Group
13-1 ログインしているユーザが所属しているGoogle Groupを取得するには
13-2 Google Groupのメールアドレスからグループを取得するには
13-3 Google Groupから取得できる値は
Chapter 14 HTML
14-1 htmlファイルを作成するには
14-2 HTML文字列を出力するには
14-3 HTML出力にコンテンツを追加するには
14-4 HtmlOutputでタイトルを設定するには
14-5 HtmlOutputのコンテンツをクリアするには
14-6 HtmlOutputで取得、設定できる値は
14-7 HTMLテンプレートを作成するには
14-8 HTMLテンプレートからHTML出力を生成するには
14-9 HTMLテンプレートから出力されるJavaScriptコードを取得するには
14-10 HTMLテンプレートに設定したコンテンツをそのまま取得するには
Chapter 15 Language
15-1 文字列を翻訳するには
Chapter 16 Lock
16-1 ユーザのみ有効なでプライベートロックを取得するには
16-2 すべてのユーザで有効なパブリックロックを取得するには
16-3 ロックを取得するには
16-4 ロックを解放するには
16-5 ロックを取得しているかどうかを確認するには
Chapter 17 Mail
17-1 メールを送信するには
17-2 1日に送信できるメールのクォータを取得するには
Chapter 18 Maps
18-1 静的なマップオブジェクトを取得するには
18-2 特定の住所のマップオブジェクトを取得するには
18-3 特定の住所にマーカーをセットするには
18-4 地図の中に直線を引くには
18-5 地図に表示する直線の定義を開始するには
18-6 直線の頂点を追加するには
18-7 地図に表示する直線の定義を終了するには
18-8 設定したマーカーをクリアするには
18-9 設定した直線をクリアするには
18-10 地図の中心を設定するには
18-11 表示されるマーカーにカスタムスタイルを適用するには
18-12 地図の画像フォーマットを設定するには
18-13 地図の言語を設定するには
18-14 地図の種類を変更するには
18-15 地図に表示されるマーカーを変更するには
18-16 モバイル向けの地図を出力するには
18-17 直線のスタイルを設定するには
18-18 地図のサイズを設定するには
18-19 地図を拡大縮小するには
18-20 住所からGeocodeを取得するには
18-21 座標から住所の情報を取得するには
18-22 Geocodeの言語を指定するには
18-23 Geocodeのリージョンを指定するには
18-24 2点間のルートを計算するには
18-25 指定した場所の高度データを取得するには
Chapter 19 Properties
19-1 スクリプトのプロパティにキーをセットするには
19-2 スクリプトのプロパティに複数のキーを一括でプロパティを設定するには
19-3 スクリプトのプロパティを取得するには
19-4 スクリプトのプロパティを一括で取得するには
19-5 スクリプトのプロパティのキーの一覧を取得するには
19-6 スクリプトのプロパティを削除するには
19-7 スクリプトのプロパティを全て削除するには
19-8 ユーザプロパティにキーをセットするには
19-9 ユーザプロパティに複数のキーを一括でセットするには
19-10 ユーザプロパティを取得するには
19-11 ユーザプロパティを一括で取得するには
19-12 ユーザプロパティのキーの一覧を取得するには
19-13 ユーザプロパティを削除するには
19-14 ユーザプロパティを全て削除するには
Chapter 20 Script
20-1 トリガーオブジェクトを生成するには
20-2 登録されているトリガーの一覧を取得するには
20-3 登録されているトリガーを削除するには
20-4 登録されているサービスを取得するには
20-5 承認を解除するには
20-6 SpreadSheet用トリガー作成オブジェクトを生成するには
20-7 時間主導型トリガー作成オブジェクトを生成するには
20-8 時間主導型トリガーに毎日起動することを指定するには
20-9 時間主導型トリガーに毎時間起動することを指定するには
20-10 時間主導型トリガーに毎分起動することを指定するには
20-11 時間主導型トリガーに毎週起動することを指定するには
20-12 時間主導型トリガーに毎月何日に起動することを指定するには
20-13 時間主導型トリガーに「何時に実行するか」を指定するには
20-14 時間主導型トリガーに特定の日時を指定するには
20-15 時間主導型トリガーに細かい起動時間(分)を指定するには
20-16 時間主導型トリガーにタイムゾーンを指定するには
20-17 時間主導型トリガーを登録するには
Chapter 21 ScriptDb
21-1 ScriptDbとは
21-2 ScriptDbにアクセスするためのインスタンスを取得するには
21-3 ScriptDbにデータを保存するには
21-4 ScriptDbに複数のデータを一気に保存するには
21-5 ScriptDbからデータを取得するには
21-6 特定の検索条件を指定して、ScriptDbからデータを取得するには
21-7 ScriptDbに保存したデータを削除するには
21-8 ScriptDbに保存したデータを一括で削除するには
21-9 ScriptDbに保存したデータのIDを指定して削除するには
21-10 ScriptDbに保存したデータのIDを指定して一括で削除するには
21-11 特定の検索条件を指定して、ScriptDbに保存されているデータ件数を取得するには
21-12 一括更新時に全ての処理が成功したかどうかを確認するには
21-13 ScriptDbからデータを取得するクエリの条件指定の仕方は
21-14 ScriptDbから取得したデータをソートするには
21-15 クエリの取得結果の件数の上限を指定するには
21-16 クエリの取得結果の開始位置を指定するには
21-17 クエリの取得結果をページ指定で取得するには
21-18 クエリの取得結果の件数を取得するには
21-19 クエリの取得結果から、データを1件取得するには
21-20 クエリの取得結果で、次のデータがあるかどうかを確認するには
21-21 キーの読み出しやクエリで取得したデータをJSON形式の文字列で出力するには
21-22 キーの読み出しやクエリで取得したデータのIDを取得するには
21-23 キーの読み出しやクエリで取得したデータのプロパティを参照するには
Chapter 22 Sites
22-1 Google Siteにサイトを作成するには
22-2 サイトを取得するには
22-3 URLを指定してサイトを取得するには
22-4 作成したサイトを一括で取得するには
22-5 アクティブなSiteを取得するには
22-6 アクティブなPageを取得するには
22-7 サイトにアナウンス用ページを追加するには
22-8 サイトにファイルキャビネットページを追加するには
22-9 サイトにリストページを追加するには
22-10 サイトにWebページを追加するには
22-11 サイトの共同編集者を追加するには
22-12 サイトのオーナーを追加するには
22-13 サイトの閲覧者を追加するには
22-14 サイトの共同編集者を削除するには
22-15 サイトのオーナーを削除するには
22-16 サイトの閲覧者を削除するには
22-17 サイトのページを検索するには
22-18 サイトから取得できる情報は
22-19 リストページのリストに列を追加するには
22-20 ページにコメントを追加するには
22-21 ページに添付ファイルを追加するには
22-22 リストページのリストに行を追加するには
22-23 ファイルキャビネットページのリストにリンクを追加するには
22-24 アナウンスページにアナウンスを追加するには
22-25 テンプレートページを作成するには
22-26 テンプレートからページを作成するには
22-27 ページを削除するには
22-28 ページから取得できる情報は
22-29 コメントを削除するには
22-30 コメントから取得できる値は
22-31 リストページの行から取得できる値は
22-32 リストページの列から取得できる値は
22-33 添付ファイルを削除するには
22-34 ページの添付ファイルから取得できる値は
22-35 ページの種類と添付ファイルの種類は
Chapter 23 SOAP
23-1 WSDLファイルを取得するには
23-2 WSDLのサービス名を取得するには
23-3 WSDLServiceから取得できる値は
Chapter 24 Spreadsheet
24-1 アクティブなスプレッドシートを取得するには
24-2 アクティブなシートを取得するには
24-3 アクティブなRangeを取得するには
24-4 スプレッドシートを開くには
24-5 スプレッドシートを作成するには
24-6 スプレッドシートに対する変更を適用するには
24-7 スプレッドシートに共同編集者を追加するには
24-8 スプレッドシートに閲覧者を追加するには
24-9 スプレッドシートにカスタムメニューを追加するには
24-10 スプレッドシートに追加したカスタムメニューを削除するには
24-11 アクティブなシートに行のデータを追加するには
24-12 アクティブなシートを削除するには
24-13 アクティブなシートをコピーするには
24-14 シートを追加するには
24-15 アクティブなシートを移動させるには
24-16 スプレッドシートの共同編集者を削除するには
24-17 スプレッドシートの閲覧者を削除するには
24-18 スプレッドシートにカスタムUIのダイアログを表示させるには
24-19 スプレッドシートに通知ウインドウを表示させるには
24-20 シートの最下行にデータを追加するには
24-21 シートの値、書式を全てクリアするには
24-22 シートのコメントを削除するには
24-23 シートの全てのセルの値を削除するには
24-24 シートの全てのセルの書式を削除するには
24-25 シートを他のスプレッドシートにコピーするには
24-26 シートの列を削除するには
24-27 シートの行を削除するには
24-28 シートの行を隠すには
24-29 シートの列を隠すには
24-30 シートにグラフを追加するには
24-31 シートのグラフを削除するには
24-32 シートに行を挿入するには
24-33 シートに列を挿入するには
24-34 シートに画像を追加するには
24-35 非表示にした列を表示させるには
24-36 非表示にした行を表示させるには
24-37 セルの値を並び替えるには
24-38 Spreadsheetから取得できる値は
24-39 Sheetから取得できる値は
24-40 範囲を選択するには
24-41 結合したセルを分割するには
24-42 特定範囲の値、書式を全てクリアするには
24-43 特定範囲のコメントを削除するには
24-44 特定範囲のセルの値を削除するには
24-45 特定範囲のセルの書式を削除するには
24-46 特定範囲のセルの書式をコピーするには
24-47 特定範囲のセルの値をコピーするには
24-48 特定範囲のセル(値、書式全て)をコピーするには
24-49 セルを結合するには
24-50 セルの値を移動するには
24-51 指定範囲をオフセットを指定して変更するには
24-52 Range内のセルの値をソートするには
24-53 Rangeから取得できる値は
24-54 シートの保護を行うには
24-55 シートの保護中に編集可能なユーザを追加するには
24-56 シートの保護中に編集可能なユーザを削除するには
24-57 シートの保護中に編集可能なユーザを取得するには
24-58 シートが保護されているかどうかを取得するには
24-59 グラフを作成するときに範囲を指定するには
24-60 グラフで指定した範囲を削除するには
24-61 グラフのオプションを設定するには
24-62 グラフの種類を指定するには
24-63 グラフの表示位置を指定するには
24-64 グラフオブジェクトを作成するには
24-65 作成したグラフオブジェクトを編集するには
24-66 作成したグラフから取得できる値は
24-67 グラフの詳細情報から取得できる値は
Chapter 25 Ui
25-1 Google Apps ScriptでUIを利用するには
25-2 UIを構成するためのインスタンスを生成するには
25-3 生成したUiInstanceを取得するには
25-4 UIを画面に追加するには
25-5 ウィジェットにタイトルを設定するには
25-6 UiInstanceに設定できる値は
25-7 GUI Builderで作成したUIをロードするには
25-8 ウィジェットのIDを指定してオブジェクトを取得するには
25-9 UiInstanceを使って生成できるウィジェットは
25-10 アンカーを利用するには
25-11 ボタンを利用するには
25-12 キャプション付きパネルを利用するには
25-13 チェックボックスを利用するには
25-14 DatePickerを利用するには
25-15 DateBoxを利用するには
25-16 サーバ側で動作するイベントハンドラを利用するには
25-17 クライアント側で動作するイベントハンドラを生成するには
25-18 メニューを利用するには
25-19 タブを利用するには
25-20 SubmitButtonを利用するには
Chapter 26 UrlFetch
26-1 外部サイトのURLにアクセスするには
26-2 OAuth設定を取得するには
26-3 OAuth設定に設定する値は
26-4 HTTPResponseから取得できる値は
Chapter 27 Utilities
27-1 書式文字列を指定して日付を文字列に変換するには
27-2 JSON文字列をオブジェクトに変換するには
27-3 オブジェクトをJSON文字列に変換するには
27-4 Blobオブジェクトを作成するには
27-5 スクリプトの実行中にSleepさせるには
Chapter 28 Xml
28-1 XML文字列を解析するには
28-2 XML要素を生成するには
28-3 XML属性を生成するには
28-4 XmlAttributeから取得できる値は
28-5 XmlElementからXML文字列を出力するには
28-6 XmlElementから取得できる値は
28-7 XmlDocumentからXML文字列を出力するには
28-8 XmlDocumentの最上位の要素を取得するには
28-9 XmlNameから取得できる値は
Chapter 29 Cache
29-1 キャッシュを取得するには
29-2 キャッシュにデータを保存するには
29-3 キャッシュに保存されているデータを取り出すには
29-4 キャッシュに保存されているデータを削除するには
Chapter 30 JDBC
30-1 Google Cloud SQLを利用するには
30-2 データベースに接続するには
30-3 接続をクローズするには
30-4 AutoCommitを制御するには
30-5 Statementを生成するには
30-6 PreparedStatementを生成するには
30-7 select文を実行するには
30-8 PreparedStatementのプレースホルダーに値を設定するには
30-9 select文の結果を1行取得するには
30-10 select文の結果の列の値を取得するには
30-11 更新系SQL文を実行するには
30-12 行数を返さないSQL文を実行するには
30-13 実行するSQL文をバッチ登録するには
30-14 登録された複数のSQL文をバッチ実行させるには
30-15 データベースへの変更をコミットするには
30-16 データベースへの変更をロールバックするには
30-17 Statementをクローズするには
30-18 プレースホルダーに設定するための特殊なオブジェクトを生成するには
Chapter 31 BigQuery
31-1 BigQueryとは
31-2 Google Apps ScriptでBigQueryを利用するには
31-3 BigQueryのクエリの書き方は
31-4 BigQueryで実行するクエリで使える関数は
31-5 BigQueryでクエリを実行するには
31-6 BigQueryで実行しているクエリの終了を確認するには
31-7 BigQueryのテーブルのデータを取得するには
31-8 テーブルやクエリの実行結果から行データを取得するには
31-9 取得した行データから列のデータを取得するには
31-10 BigQueryに行を追加するには
A Appendix
A-1 Google Apps Scriptに関する参考資料について
A-2 外部JavaScriptライブラリをGoogle Apps Scriptに取り込む

おわりに

欲を言えば25章のUIで、ファイルアップロードについても解説していただければよかったかな、と。

でも使える情報が多くて助かります。突破力のあるコードを書かねばならないときに、見通しが出る書籍があるのは大変心強いです。
■Google Apps Scriptクイックリファレンス

GAS:入力された日付の曜日をスプレッドシート側で自動計算

Google Apps Scriptは便利なのですが、時にはプログラム上での計算処理ではなく、スプレッドシート側の関数で処理したいこともあると思います。

可視化性やメンテナンス性を高めるためにこういう柔軟性は必要だと思います。

よくある例としてはGoogleFormで日付を入力させた場合です。

入力者に出張開始日と出張終了日をYYYY/MM/DD形式で入力させることは難しくないでしょう、でも曜日や出張日数を自動計算できないシステムなんてちょっと機能的にも信頼されないと思います。

スプレッドシート側では以下の様な形で収納したいとしましょう。

sheet

フォームからはK列とM列にデータが入ります。L列,M列,O列はそれぞれ


L2=vlookup(weekday(K2),曜日,2,false)

M2=vlookup(weekday(M2),曜日,2,false)

O2=M2K2+1

といった式を入れておきたいわけです。

なおここでは「曜日」という範囲を別のシートに以下の様なデータで定義しています。EXCELと同じような名前定義が使えるのは便利ですね。

【「曜日」で定義されたデータ】

1 日
2 月
3 火
4 水
5 木
6 金
7 土

さて、スクリプトです。

入力されたデータを自動処理するあたりで文字列として「=vlookup(weekday(K2),曜日,2,false)」をセットしてみるのですが、どうもセルの参照である「K2」が正しく働いてくれません。
色々やってみた挙句、以下のように相対参照(いわゆるR1C1形式)で表記すれば自動的に正しいセルのアドレスを取得してくれるようです。これはこれで便利ですね!コードに落とした場合は以下のとおりです。

[javascript]
//曜日と出張日数を自動計算
d = sh.getRange(row, 1, 1, rg.getLastColumn()).getValues(); //指定行のデータを取得
if (d[0][11]=="") { //左から数えて12個め,つまりL列が空白だったら以下のコードを自動で入れます
rg.getCell(rowline, 11+1).setValue("=vlookup(weekday(R[0]C[-1]),曜日,2,false)");
rg.getCell(rowline, 11+3).setValue("=vlookup(weekday(R[0]C[-1]),曜日,2,false)");
rg.getCell(rowline, 11+4).setValue("=R[0]C[-2]-R[0]C[-4]+1");
}
[/javascript]

Google Apps Scriptはクラウド側で演算してくれるので、利用者が演算コストを意識する必要はないのですが、スクリプト側のタイムアウトを防ぐためにもスプレッドシート側で演算できるものはできるかぎりスプレッドシート側で処理させたほうが良いと思います。
スクリプト側にハードコーディングしてしまうと、スプレッドシート側でいろいろやりたいエンドユーザ(EXCELスキルがある人とか……)を突き放すことにもなります。

実際にはEXCELでいろいろやりたいユーザさんが味方になってくれてこそのGAS利用だと思いますので

このような設計手法は柔軟性があって良いと思います!