コーディング レベル: 初級
所要時間: 5 分
プロジェクト タイプ: カスタム メニューとイベント ドリブン トリガーを使用した自動化
目標
- ソリューションの機能を理解します。
- ソリューション内で Apps Script サービスが何を行うかを理解します。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
エンドツーエンドのイベント登録システムを作成します。会議などのイベントが予定されている場合は、会議のセッション用に新しいカレンダーを設定し、登録フォームを作成して、参加者にパーソナライズされた日程表を自動的にメールで送信できます。

仕組み
このソリューションでは、Google スプレッドシートのカスタム メニューを使用して、自動化されたイベント登録システムを実装します。このスクリプトは、スプレッドシートに記載されている会議イベントを含むカレンダーを作成します。スクリプトは、参加者が登録できるイベントのリストを含むフォームを作成します。参加者がフォームに記入すると、スクリプトによって参加者がカレンダーの予定に追加され、参加者に旅程がメールで送信されます。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- スプレッドシート サービス: 他のサービスにイベント情報を提供します。
- Google カレンダー サービス: イベント用の新しいカレンダーを作成し、カレンダーにイベントを追加し、登録したイベントに参加者を追加します。
- プロパティ サービス: カレンダー サービスによって作成されたカレンダーの ID を保存します。ユーザーがカスタムの [Conference] メニューから [Set up conference] をクリックすると、Properties サービスは、カレンダー ID プロパティが存在するかどうかを確認して、イベント登録システムがすでに設定されているかどうかを確認します。これにより、フォームやカレンダーの重複作成を回避できます。
- Google フォーム サービス: スプレッドシートの情報から、参加者がセッションに登録できるフォームを作成します。
- スクリプト サービス: 出席者がフォームに入力したときにトリガーされるトリガーを作成します。
- ドキュメント サービス: 参加者が登録したイベントのイベント情報を取得し、イベントのリストを新しいドキュメントに追加します。このスクリプトは、参加者にドキュメントの編集権限を付与します。
- メールサービス: 参加者に旅程ドキュメントをメールで送信します。
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
次のボタンをクリックして、会議のセッションの登録を作成するサンプル スプレッドシートのコピーを作成します。このソリューションの Apps Script プロジェクトは、スプレッドシートに添付されています。
[会議] > [会議を設定] をクリックします。このカスタム メニューを表示するには、ページの更新が必要になる場合があります。
メッセージが表示されたら、スクリプトを承認します。<<../_snippets/oauth.md>>
[会議] > [会議を再度設定] をクリックします。
スクリプトを実行する
- [ツール] > [フォームを管理] > [ライブフォームに移動] をクリックします。
- フォームに記入して送信します。
- calendar.google.com にアクセスします。
- 左側で、[会議用カレンダー] の横にあるチェックボックスがオンになっていることを確認します。
- 登録したイベントの日付に移動し、参加者として追加されていることを確認します。
(省略可)ソリューションをリセットする
このソリューションをもう一度試す場合や、独自のイベント情報を使用するようにカスタマイズする場合は、スクリプトを最初に実行したときに設定された一部のアイテムをリセットする必要があります。ソリューションをリセットする手順を表示するには、[ソリューションをリセットする] をクリックします。
ソリューションをリセットする
ステップ 1: 保存されているスクリプト プロパティをリセットする
スクリプトを複数回実行しようとすると、「会議はすでに設定されています。Google ドライブで登録フォームを探してください。 これは、会議用カレンダーが作成されると、カレンダー ID がスクリプト プロパティとして保存されるためです。スクリプトを実行すると、カレンダー ID プロパティがすでに存在するかどうかが確認され、存在する場合は実行が停止します。
既存の calendar 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
</section>
寄稿者
このサンプルは、Google デベロッパー エキスパートの協力を得て Google が管理しています。