Google Apps Script

本書は「Google Apps Script(以下、GAS)」の初学者を対象とした教本です。GASはGoogleが提供するクラウドサービス「Google Workspace(旧G Suite)」に含まれる、スプレッドシートやフォームなどのGoogleのアプリケーションにカスタム機能を追加することができるプログラミング言語です。
GASはJavaScriptベースのスクリプト言語であり、JavaScriptの基礎知識を有する方であれば、比較的容易に学習することができます。また、GASを使うことで、Googleアプリケーションの自動化や処理の効率化など、様々な業務効率化が可能となります。
本書では、初めてGASを学ぶ方でもわかりやすく、実践的なプログラムを作成できるよう、基礎的な文法や関数の使い方から、実践的な応用例までをカバーします。GASの概念や使い方について興味を持った方、GASを使った業務効率化に興味がある方は、ぜひ本書を手に取ってみてください。
本書を通じて、GASに触れたことのない方でも、実践的なプログラムを作成することができるようになることを目指しています。また、GASを使った業務効率化に興味を持った方にとっても、役立つ情報が多数含まれています。是非、本書を手に取って、GASの世界を楽しんでみてください。
本書は「Google Apps Script(以下、GAS)」の初学者を対象とした教本です。GASは、Googleが提供するクラウドサービス「Google Workspace(旧G Suite)」に含まれる、スプレッドシートやフォームなどのGoogleのアプリケーションにカスタム機能を追加することができるプログラミング言語です。
GASを使うことで、Googleアプリケーションの自動化や処理の効率化など、様々な業務効率化が可能となります。本書では、初めてGASを学ぶ方でもわかりやすく、実践的なプログラムを作成できるよう、基礎的な文法や関数の使い方から、実践的な応用例までをカバーします。
本書を通じて、GASに触れたことのない方でも、実践的なプログラムを作成することができるようになることを目指しています。また、GASを使いこなすことで、業務効率化に大きく貢献できることを理解していただけるようにもなっています。
GASは、プログラミング初心者でも簡単に学べる言語であり、しかも無料で利用できます。そのため、GASを使うことで、多くの企業や個人が業務の効率化や自動化に取り組むことができるようになっています。
本書で学ぶ内容は、初心者向けの基礎的な内容から、実践的な応用例まで幅広くカバーしています。また、APIやWebアプリケーションの作成、ライブラリの利用など、GASの応用編もしっかりと取り上げています。
GASは、Google Workspaceに含まれる様々なアプリケーションと連携することができるため、業務のあらゆる面で活用が可能です。本書を通じて、GASを使いこなし、業務の効率化や自動化に取り組むことで、より効率的かつスムーズな業務運営を実現していただけることを願っています。
Google Apps Script(以下、GAS)は、Google Workspace(旧G Suite)のスプレッドシートやフォームなどのアプリケーションにカスタム機能を追加するためのプログラミング言語です。JavaScriptをベースとしており、GoogleのAPIにアクセスするための機能を提供しています。GASは、スプレッドシート、ドキュメント、ドライブ、カレンダー、メールなど、様々なGoogleのサービスと統合されており、生産性を高めることができます。
GASは、プログラミング初心者でも学びやすく、豊富なAPIやオブジェクトを提供しているため、初心者から上級者まで幅広く活用できます。また、Googleアプリケーションとシームレスに連携することができ、自動化や処理の効率化が可能です。さらに、GASは、Googleが提供するクラウドサービスの一部であり、OAuth認証によるAPIの利用やスコープの明示的な設定など、高いレベルのセキュリティ保護が提供されています。
GASは、無料で利用できるため、手軽に利用を開始することができます。また、Googleアプリケーションと連携して、スプレッドシートのデータ処理や操作、フォームの回答自動化、Gmailの自動送信など、様々な応用が可能です。APIを利用することで、外部サービスとの連携も可能です。GASを使用して自動化されたプロジェクトやスクリプトは、ビジネスや教育などの多くの分野で使用され、世界中で利用されています。
GASの開発環境には、ブラウザ上で動作するGASエディタが用意されています。GASエディタは、Googleドライブ上のスプレッドシートやGoogleフォームからアクセスすることができます。 GASエディタは、テキストエディタ、デバッガ、実行ボタンなどの基本的な機能を備えています。また、Google Apps Scriptのドキュメントやリファレンスなど、開発に必要な情報を取得するためのリンクも用意されています。 GASエディタには、Google Apps Scriptのコードを記述するエディタウィンドウと、実行結果を表示するコンソールウィンドウがあります。また、スプレッドシートやフォームなどのGoogleアプリケーションにアクセスするためのオブジェクトブラウザも用意されています。 GASエディタは、オンライン上で動作するため、常に最新版のGASが使えます。また、複数の開発者が同時に開発を行うこともできます。 GASエディタは、プログラムを作成するだけでなく、Googleアプリケーションとの連携も簡単に行うことができます。たとえば、スプレッドシートのデータを自動的に更新するスクリプトを作成した場合、スプレッドシートを開いて実行する必要はありません。スクリプトをトリガーに登録することで、一定の間隔で自動的に実行されるようになります。 さらに、GASエディタは、Googleドライブ上で作業することができるため、スプレッドシートやフォーム、ドキュメントなどのファイルと密接に連携することができます。これにより、プログラムとファイルを一元管理することができます。 GASエディタは、初心者にも扱いやすく、使い勝手が良いと評価されています。GASエディタを使って、Googleアプリケーションにカスタム機能を追加することで、業務効率化や自動化を実現することができます。

説明を簡単にするため、Google スプレッドシートから Google Apps Script (GAS)を呼び出した場合として説明します。
まず、「拡張機能」>「Google Apps Script」を選ぶことで、GASを呼び出せます。
すると、次のようにスクリプト入力タブが新たに開きます。

ただし、これはまだGAS編集画面を開いただけにすぎず、何の命令もしてないので、何も起こりません。
では、これから命令を追記していって、GASを実行してみましょう。
手始めに「Hello World!」とログに表示するプログラムを作ってみます。

となるように追記します。
この段階では、まだ何も保存していないので、実行できません。
なお、上記コードと右のスクリーンショットでコードの文字色が違うのは、wikiのサーバーの設定とgoogleのサーバーの設定とが異なるためです。特に深い意味はありません。

保存のため、「プロジェクトを保存」を実行してください。コード入力部の上にあるアイコン一覧に、よく探すと「プロジェクトを保存」アイコンがあります。アイコンにマウスカーソルを当てると「プロジェクトを保存」というメッセージが出てくるので、そのアイコンを押すだけです。
「プロジェクトを保存」アイコンを押せば、実行ができるようになります。
実行は、再生ボタンみたいなアイコンです。

上述のコードの場合、実行すると右のような画面になります。
(おわり)
本章では、GASの基本文法について説明します。GASはJavaScriptをベースとしており、JavaScriptの文法に準拠しています。JavaScriptを学んだことがある方は、GASの学習が容易になるでしょう。
コード中に説明や備考を残すことができるコメントは、コードを理解する上で非常に重要です。GASでは、以下のようにコメントを書くことができます。
GASでは、変数を宣言する際にletキーワードを使用します。以下は、変数を宣言する例です。
変数名には、英数字とアンダースコア(_)が使用できますが、数字で始まる変数名は使用できません。
GASでは、数値演算や文字列連結など、様々な演算子を使用することができます。代表的な演算子は以下の通りです。
GASでは、条件分岐や繰り返し処理を実行するための制御文があります。以下は、代表的な制御文です。
条件分岐は、ある条件が成り立った場合に処理を実行するためのものです。以下は、条件分岐を行うif文の例です。
繰り返し処理は、同じ処理を複数回実行するためのものです。以下は、繰り返し処理を行うfor文の例です。
上記の例では、iという変数を0から始め、10未満の間(0から9まで)、1ずつ増やしながら、ループを繰り返しています。
GASでは、処理をまとめて名前をつけておくことができる関数を定義することができます。以下は、関数を定義する例です。
:引数としてxとyを受け取り、xとyを加算した結果を返す処理が定義されています。 :また、関数を実行する際には、add(1, 2)のように引数を渡すことができます。
以上が、GASの基本文法についての説明です。GASはJavaScriptをベースとしているため、JavaScriptを学んだことがある方であれば、比較的容易に学習することができます。
GASで利用するオブジェクトとは、Googleアプリケーション内で操作したい要素やデータのことを指します。オブジェクトを操作することで、スプレッドシートやフォーム、GmailなどのGoogleアプリケーションを自由にカスタマイズすることができます。
GASでは、様々なオブジェクトが利用できますが、ここでは代表的なものを紹介します。
これらのオブジェクトを使って、Googleアプリケーション内のデータや機能を自由に操作することができます。オブジェクトにはそれぞれメソッドやプロパティが用意されており、これらを使ってオブジェクトを操作することができます。また、オブジェクトの階層構造もあり、複数のオブジェクトを組み合わせてより高度な操作が可能です。
Google Apps Script には、Google Apps との相互作用やその他のタスクを自動化するためのさまざまな固有オブジェクトがあります。以下にいくつかの主要なオブジェクトを示します。
これらのオブジェクトは、Google Apps Script の基本的な機能を拡張するために使用されます。オブジェクトの詳細については、Google Apps Script の公式ドキュメントを参照してください。
GASの開発には、Google Workspace(旧G Suite)のアカウントが必要です。Google Workspaceは、企業向けのクラウドサービスで、ビジネス用途に最適化されたアプリケーションを提供しています。
GASを開発するためには、以下の手順が必要です。
A1セルに「Hello, World!」と書き込みする場合、たとえば
のようになる。(なお、初めてスクリプト実行する際、承認が必要になるので、グーグルの指示に従って承認すればいい。)
このコードの意味は、
のような意味です。
getActiveSheet() は、そのコードが現在実行中のシートを指定しています。スプレッドシートからGASを起動した場合なら、特に他のシートを使いたい場合でもない限りは、getActiveSheet() で良いでしょう。
もし他のシートを指定したい場合なら、getSheetByName による名前の指定によるシート指定を使うことになるでしょう。説明は省略します。必要ならグーグルの公式サイトなどに詳細がありますので参照してください。
getRange() は、セルの指定の機能があります。(上記コードで getRange() を用いています。)
上記コードでは用いてないですが、getValue() は、セル内の値の読み込みの機能があります。
一方、指定したセル内に値を代入したい場合は setValue() で可能です。上記コードで用いているのは setValue() です。
スペルが似ているので混同しないようにしましょう。
さて、文字列の書き込みだけではスクリプトの意味が無いので、次に数値を読み込んで計算をしてみましょう。
まず、練習用にシートの数値が必要なので、適当に入れましょう。本ページでは、下記のように入力したとして以降を説明します。
たとえばA1セルの値を読み込みたい場合は、下記のようになります。
間違えて getValue() のカッコ内にセル番号を入れないようにしないでください。
getValueはセル番号指定の命令ではないです。
getValue() は、すでにgetRange() などで指定したセルにある値を読み取れ、という意味の命令です。

これだと、まだ読み込んだだけなので、意味がありません。
では、練習としてA1とA2の和を求めましょう。もちろんマクロを使わずともスプレッドシート側で簡単に総和を計算できる機能もありますが、本プログラムはスクリプト練習用なので、そういうのは無視します。

上記コードの実行に成功すれば、下記のように A3 に計算結果 8 が書き込みされます。