チェックポイント
Create a new Google Sheet and enter a street address
/ 50
Run the Google Sheets, Maps, and Gmail app
/ 50
Google Apps Script: コード 4 行で Google スプレッドシート、Google マップ、Gmail にアクセスする
GSP235
概要
このラボでは、ウェブ開発言語の中でも主流の JavaScript でコードを記述して、Google のデベロッパー テクノロジーを簡単に利用する方法について説明します。まず Google Apps Script でコードを記述して、Google スプレッドシート内のセルに保存された住所を抽出し、その住所をもとに Google マップを生成して、その地図へのリンクを Gmail を使って自分や友人宛てに送信します。このスクリプト言語のすばらしい点は、わずか 4 行のコードでこの一連の処理を実行できるところです。
目標
- Apps Script について簡単に学ぶ(当初の知識としては十分な程度)
- Google スプレッドシートで新しいスプレッドシートを作成する
- 任意のドキュメントでスクリプト エディタを開く
- Apps Script コードを編集、保存、実行する
- 結果を Gmail で確認する
推奨される知識
次の知識があると効率的に学習できます。
- JavaScript の基本的なスキル(必須ではありませんがあれば役立ちます)
- スプレッドシートに関する基本的なスキル
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始する
準備ができたら、左上のパネルの [ラボを開始] をクリックします。
ラボのユーザーのメールとパスワードを確認する
ラボで使用するリソースとコンソールにアクセスするには、左パネルの [ユーザーのメール] と [パスワード] を確認します。これらは、Google ドライブへのログインに使用する認証情報です。
その他のリソース ID や、接続に関連する情報がラボに必要な場合は、このパネルに表示されます。
Google スプレッドシートにログインする
- [Google スプレッドシートを開く] をクリックします。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
-
[ユーザーのメール] と [パスワード] を入力します。
-
指示に従ってすべての利用規約に同意します。
Google スプレッドシートが開き、受講者用 Google アカウントにログインできました。
Google Apps Script とは
Google Apps Script が提供する開発環境は、これまでに使い慣れたものではないかもしれませんが、次のことが可能になります。
- ブラウザベースのコードエディタでの開発に加え、Apps Script 用のコマンドライン デプロイツールである clasp を使用すれば、ローカルでの開発も可能です。
- Workspace やその他の Google または Google 外部のサービス(URLfetch、JDBC など)にアクセスできるようカスタマイズされた特殊な JavaScript でコーディングを行うことができます。
- 認証コードの記述を行う必要はありません。Apps Script で自動的に処理されます。
- アプリをホストする必要はありません。クラウドの Google サーバーから実行されます。
Apps Script アプリケーションには、次の 2 つがあります。
- コンテナ バインド - 1 つの Google ドキュメント(ドキュメント、スプレッドシート、スライド、サイト、フォーム)のみに永続的に関連付けられたものです。
- スタンドアロン - Google スプレッドシート、ドキュメント、スライド、フォームのファイルや Google サイトにバインドされていない独立したスクリプトです。
コンテナ バインドのアプリもスタンドアロンのアプリも、公開することで幅広く利用できるようになります。
- 非公開 - プロジェクトの所有者だけがアクセスできます
- アドオンとして公開 - アプリがアドオンストアで公開され、誰でもインストールできます
- ウェブアプリとして公開 - ウェブ UI コンポーネントを備え、HTTP リクエストが処理される形式のアプリが公開されます
- Google サイトに埋め込む - 公開されたウェブアプリを、新しいサイトまたは従来のサイトのページに埋め込むことができます
- Execution API 対応形式で公開 - Execution API からアクセスできる形式のアプリが公開されます
- 上記の組み合わせ(有効な場合)
ここでは、Google スプレッドシートのコンテナ バインド型 Apps Script アプリを作成していきます。まずは新しいスプレッドシートを作成しましょう。
タスク 1. 新しい Google スプレッドシートを作成して住所を入力する
次の手順を実行して、新しい Google スプレッドシートに住所を入力します。
- 新しいスプレッドシートを作成するには、[Google スプレッドシート] を開きます。
- 空白のスプレッドシートの、左上の最初のセル(A1)をクリックします。これが A 列の 1 行目になります。
- このセルに住所を入力します。郵便番号や都道府県 / 州、市区町村など、国内 / 海外のいずれかの地点の有効な住所(例: 76 9th Ave, New York)を入力します。
このシートで必要な作業はこれだけです。それでは、エディタを開いてコードを記述していきます。
[進行状況を確認] をクリックして、上記のタスクを実行したことを確認します。
タスク 2. Apps Script を開く
Apps Script は、スプレッドシートにバインドされたスクリプトの作成に使用するコードエディタを提供します。
- 上部のメニューバーで、[拡張機能] > [Apps Script] を選択します。
Apps Script が開きます。右側のコードエディタ ウィンドウに注目してください。
myFunction()
というデフォルトの関数が自動的に作成されて、エディタに表示されます。これで、アプリケーションのコードを記述する準備ができました。
タスク 3. (テンプレート)コードを編集する
-
コード.gs
ファイルはテンプレートのコードを提供するもので、何かを実行することはありません。以下のコードをコピーしてエディタ ウィンドウに貼り付け、テンプレート コードと置き換えます。<YOUR_EMAIL>
はラボのユーザー メールアドレスに変更してください。
- このアプリを制限して(ユーザーのすべてのシートではなく)対象のシートのみにアクセスするように、次のアノテーションをファイルレベルのコメントとして追加しておきます。これでユーザーが安心して使用できるようになります。
これで完了です。オプションのアノテーションを除いて 4 行で sendMap()
アプリを作成しました。
<YOUR_EMAIL>
をこのラボで用意されているユーザー メールアドレスに必ず置き換えて、ラボ中にメールを確認できるようにしてください。
エディタのコードを置き換えると、ファイル名の左に赤い丸が表示されます。
これは、ファイルに編集が加えられたため、保存が必要であることを示しています。編集して保存されていない内容があると必ず表示されます。
- 保存して、プロジェクトに名前を付けます。「Hello Maps!」など、名前は何でもかまいません。[プロジェクトを保存] アイコンをクリックしてファイルを保存します。
Ctrl+S(Windows や Linux など)または command+S(Mac)を押して保存することもできます。次に進む前に、プロジェクトに名前を付ける必要があります。
タスク 4. Google スプレッドシート、マップ、Gmail アプリを実行する
作成したアプリを実行する方法は次のとおりです。
- 関数の名前は
sendMap()
に変更したので、関数の実行には sendMap を選択します。
- コードエディタのメニューバーの [実行] をクリックして
sendMap()
関数を実行します。
認証コードは Apps Script で管理されるため、記述する必要はありません。ただし、スクリプトが(ユーザーに代わって)スプレッドシートにアクセスし、Gmail でメールを送信できるよう、アプリユーザー自身がアクセスを許可する必要があります。最初の認証ダイアログは、次のようになります。
- [許可を確認] をクリックします。
- メッセージが表示されたら、アカウントを選択します(ユーザー名はラボの [ラボの詳細] パネルで確認できます)。
- 次のダイアログで、アプリが Google アカウントにアクセスできるようにするかどうかが確認されるので、[許可] をクリックします。
アクセスを許可すると、スクリプトが最後まで実行されます。
- 左側にカーソルを合わせて [実行数] をクリックし、一覧表示された
sendMap
を確認します。メッセージが表示されたら、[ダッシュボードを表示] をクリックします。
-
左側のラボパネルに表示されている [Gmail を開く] ボタンをクリックします。
-
[アカウントを選択] ダイアログで、受講生のユーザー名を入力して [次へ] をクリックします。
-
ラボから提供されたパスワードを入力して [次へ] をクリックします。
-
[同意] をクリックして利用規約に同意します。
これで、Gmail の受信トレイが表示されます。件名が「Map」で本文が次のようなメッセージが届きます。
[進行状況を確認] をクリックして、上記のタスクを実行したことを確認します。
たった 4 行のコードで、Google の 3 つのサービスにアクセスして意味のある処理を実行できました。これだけではアプリケーションとして完成されていませんが、すばらしい結果です。JavaScript や Apps Script に慣れていなくても、コードの意味や大まかな仕組み、Apps Script で何ができるかを理解していただけたら幸いです。
タスク 5. アプリの詳しい説明
ここでは、コードを詳しく確認していきます。
このアプリケーションのコードは短いため、全体的な構造について特に説明することはありません。特に Google の 3 種類のサービスを利用する箇所を、1 行ずつ詳しく確認していきます。
次の行は、通常の JavaScript の関数宣言で、sendMap()
という関数を定義しています。
コードの 1 行目では、スプレッドシート サービスを呼び出しています。SpreadsheetApp オブジェクトを使用することにより、Apps Script からサービスにアクセスできます。返されたシートを、sheet という名前の変数に代入しています。
getActiveSheet() メソッドでは名前のとおりの処理が実行されます。ユーザー インターフェース(UI)で現在アクティブなシートへの「ハンドル」が返されます。
取得した sheet
オブジェクトを使用して、getRange() で A1 表記のセル範囲(ここでは 1 つのセル)を参照しています。「セル範囲」とはセルのグループを指しますが、今回のように 1 つのセルの場合もあります。セル A1
は、住所を入力したセルです。
getValue() でセル範囲の内容を取得し、戻り値を address 変数に代入しています。その他の住所を追加して、他のセルからも読み出してみましょう。
3 行目では、Maps オブジェクトを使って Google マップサービスにアクセスしています。マップサービスへのアクセスが成功したら、newStaticMap() で新しい静的マップの作成がリクエストされます。
また addMarker() メソッドで、シートから取得した住所に「ピン」がドロップされます。
最後の行では、メールサービスを使用しています。GmailApp オブジェクトの sendEmail() メソッドを呼び出してメールを送信しています。メールには「See below.」というテキストと地図画像の添付ファイルが含まれます。
お疲れさまでした
ここでは、Google Apps Script を使用してコードを記述しました。Google のデベロッパー テクノロジーを利用して Google スプレッドシート内の住所を抽出し、その住所をもとに Google マップを生成し、その地図をメールで送信するコードです。
クエストを完了する
このセルフペース ラボは、「Workspace Integrations」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、こちらのクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能な全クエストについては、カタログをご覧ください。
次のラボを受講する
クエストを続けるか、以下のおすすめのラボをご確認ください。
次のステップと詳細情報
- Google Sheets API のデベロッパー向けドキュメントを読む。
- google-sheets-api タグを付けて Stackoverflow に質問を投稿したり回答を探したりしてみる。
参考情報
このラボで紹介しているコードは、GitHub リポジトリ(GitHub.com/googlecodelabs/apps-script-intro)でも入手できます(このラボの内容は、リポジトリのコードと同じ内容になるようにしています)。以下に、このラボの内容をさらに掘り下げたり、Google デベロッパー ツールにプログラムでアクセスしたりするために役立つ資料を示します。
ドキュメント
- Google Apps Script ドキュメント サイト
- Apps Script Gmail サービス
- Apps Script スプレッドシート サービス
- Apps Script マップサービス
関連動画と一般動画
ニュースや最新情報
- Workspace デベロッパー ブログ
- Workspace デベロッパー Twitter(@GSuiteDevs)
- Workspace デベロッパー マンスリー ニュースレター
- Google Workspace ラーニング センター
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2023 年 6 月 5 日
ラボの最終テスト日: 2023 年 6 月 5 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。