夕蛙のなく頃に

データアナリストとして学んだことや趣味で勉強し始めたIoTをアウトプットする

「詳解! GoogleAppsScript完全入門」を読みました

いざGoogle Apps Scriptの世界へ

最近ビジネス職の方々の既存の業務効率化のために、スプレで運用していたリスト管理やKPI可視化の自動化に取り組んでいます。
(データアナリストとしては本質的な仕事ではないと思いつつ、短期的にはインパクトが出るタスクなので、転職直後の自分の地位確立のためにざっと請け負っています)

そして初めてGoogle Apps Script(以降 GAS と表記)を触りました。
ReactやVue.jsを少し勉強したことがあったので、JavaScriptに関してはいいのですが、GAS特有の処理は都度調べていました。

ただ体系的に学びたいなと思い、社内の人におすすめされた「詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~」を読みました。

概要

  • 第1〜2章: GASとは
  • 第3〜7章: JavaScriptの書き方
  • 第8〜第12章: Googleサービスに紐づいたGASの使い方
  • 第13章〜第19章: GAS特有の便利な使い方

という内容になっており、JavaScript初心者でも一通り学べる内容となっています。
JavaScriptの章をほとんど飛ばしたので、3時間ほどで読み終わりました。

感想

一番よかったことは、スプレッドシートGmailなどGoogleサービスを扱うためのクラスを俯瞰的に把握できたことです。

例えばsheet内の全データを取ってこようとすると、以下のように書いてきました。。。
(よくないのですが)これを思考停止的に使っていました。。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('シート1');
Logger.log(sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues());

書籍を読むことで上位のクラスから下位のクラスを呼んでいっていることをしっかり理解することができました。

// SpreadsheetAppクラス --> Spreadsheetクラス
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

// Spreadsheetクラス --> Sheetクラス
var sheet = spreadsheet.getSheetByName('シート1');

// Sheetクラス --> Rangeクラス(cell操作)
var range = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());

Logger.log(range.getValues());

また、上位から下位に到るまでのそれぞれのクラスでできること(主要なメソッド一覧)も載っていて、簡単な辞書としても有用そうです。
ただクラスを把握できたので、公式リファレンスでちゃんと探すことができそうです。

公式ホームにリリースノートがあるのですが、追加されたクラスやメソッドを試してみて記事ネタにするのもよさそうですね!