コーディング レベル: 初級
所要時間: 5 分
プロジェクトの種類: カスタム メニューとイベントドリブン トリガーを使用した自動化
目標
- ソリューションの機能について理解する。
- ソリューション内での Apps Script サービスの役割を理解する。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
エンドツーエンドのイベント登録システムを作成します。会議などのイベントが近づいている場合は、会議セッション用の新しいカレンダーを設定し、登録フォームを作成して、参加者ごとにカスタマイズされた日程表を自動的にメールで送信できます。
仕組み
このソリューションでは、Google スプレッドシートのカスタム メニューを使用して、イベント登録システムを自動化します。このスクリプトにより、スプレッドシートに表示されている会議イベントを含むカレンダーが作成されます。次に、参加者が登録できるイベントのリストを含むフォームが作成されます。参加者がフォームに入力すると、スクリプトは参加者をカレンダーの予定に追加し、旅行プランをメールで送信します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- スプレッドシート サービス - 他のサービスにイベント情報を提供します。
- カレンダー サービス - イベントの新しいカレンダーを作成し、カレンダーにイベントを追加し、登録したイベントに出席者を追加します。
- プロパティ サービス - カレンダー サービスによって作成されたカレンダーの ID を保存します。ユーザーがカスタムの [会議] メニューから [会議を設定] をクリックすると、プロパティ サービスはカレンダー ID プロパティが存在するかどうかを確認して、イベント登録システムがすでに設定されているかどうかを確認します。これにより、重複するフォームやカレンダーの作成を回避できます。
- フォーム サービス - スプレッドシートの情報から、参加者がセッションに登録できるフォームを作成します。
- スクリプト サービス - 参加者がフォームに記入したときにトリガーを実行します。
- ドキュメント サービス - 参加者が登録したイベントのイベント情報を取得し、イベントのリストを新しいドキュメントに追加します。このスクリプトにより、参加者にドキュメントの編集権限が付与されます。
- 郵送サービス - 日程表ドキュメントを参加者にメールで送信します。
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットに接続できるウェブブラウザ。
スクリプトを設定する
- 次のボタンをクリックして、会議でのセミナーの登録フォームを作成するサンプル スプレッドシートのコピーを作成します。このソリューションの Apps Script プロジェクトがスプレッドシートに添付されています。
コピーを作成 - [会議] > [会議を設定] をクリックします。このカスタム メニューが表示されるように、ページを更新する必要がある場合があります。
プロンプトが表示されたら、スクリプトを承認します。OAuth 同意画面に [このアプリは確認されていません] という警告が表示された場合は、[詳細] > [{プロジェクト名} に移動(安全でない)] を選択して続行します。
[会議] > [会議をセットアップ] をもう一度クリックします。
スクリプトを実行する
- [ツール] > [フォームを管理] > [ライブフォームに移動] をクリックします。
- フォームに記入し、送信します。
- calendar.google.com にアクセスします。
- 左側の [会議カレンダー] の横にあるチェックボックスがオンになっていることを確認します。
- 登録したイベントの日付に移動し、参加者として追加されていることを確認します。
(省略可)ソリューションをリセットする
このソリューションをもう一度試す場合や、独自のイベント情報を使用するようにカスタマイズする場合は、スクリプトを初めて実行したときに設定した一部の項目をリセットする必要があります。ソリューションをリセットする手順を表示するには、下の [ソリューションをリセットする] をクリックします。
ソリューションをリセットする
ステップ 1: 保存されているスクリプト プロパティをリセットする
スクリプトを複数回実行しようとすると、「会議はすでに設定されています。Google ドライブで登録フォームを探してください。 これは、会議カレンダーが作成されると、カレンダー ID がスクリプト プロパティとして保存されるためです。スクリプトが実行されると、カレンダー ID プロパティがすでに存在するかどうかが確認され、存在する場合は実行が停止します。
既存のカレンダー ID プロパティを削除する手順は次のとおりです。
- スプレッドシートで、[拡張機能] > [Apps Script] をクリックします。
- Apps Script エディタで、関数のプルダウン リストから
resetProperties
を選択し、[実行] をクリックします。
ステップ 2: 会議のカレンダーを削除する
スクリプトが実行されるたびに、新しいカレンダーが作成されます。作成した元のカレンダーを保持しない場合は、次の操作を行います。
- calendar.google.com にアクセスします。
- 会議カレンダーの横にある会議カレンダーのオプション アイコン > [設定と共有] をクリックします。
- 設定の一番下までスクロールし、[削除] をクリックします。
ステップ 3: フォーム送信トリガーを削除する
このスクリプトは、実行するたびにフォーム送信のトリガーを作成します。複数のトリガーが重複メールの原因にならないようにするには、元のトリガーを削除します。手順は次のとおりです。
- スプレッドシートで、[拡張機能] > [Apps Script] をクリックします。
- Apps Script プロジェクトの左側にある [トリガー] をクリックします。
- トリガーの横にあるその他アイコン > [トリガーを削除] をクリックします。
ステップ 4: フォームのリンクを解除して削除する
スクリプトを実行するたびに、新しいフォームが作成されます。フォームとスプレッドシートのリンクを解除して削除する手順は次のとおりです。
- スプレッドシートで [フォームの回答] シートを右クリックし、[フォームのリンクを解除] > [OK] をクリックします。
- [フォームの回答] シートをもう一度右クリックし、[削除] > [OK] をクリックします。
- forms.google.com にアクセスします。
- [Conference Form] を右クリックし、[削除] > [ゴミ箱に移動] をクリックします。
ソリューションをリセットしたら、独自のデータを追加するか、サンプルデータを引き続き使用してスクリプトを再度実行できます。
コードを確認する
このソリューションの Apps Script コードを確認するには、下の [ソースコードを表示] をクリックします。
ソースコードを表示
コード.gs
寄稿者
このサンプルは、Google デベロッパー エキスパートの協力を得て Google によって管理されています。