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

仕組み
このソリューションでは、Google スプレッドシートのカスタム メニューを使用して、自動イベント登録システムを実装します。スクリプトは、スプレッドシートに記載されている会議イベントを含むカレンダーを作成します。次に、参加者が登録できるイベントのリストを含むフォームを作成します。参加者がフォームに記入すると、スクリプトは参加者をカレンダーの予定に追加し、日程表をメールで送信します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- スプレッドシート サービス: イベント情報を他のサービスに提供します。
- Google カレンダー サービス: イベントの 新しいカレンダーを作成し、カレンダーにイベントを追加して、参加者が登録したイベントに 参加者を追加します。
- プロパティ サービス: カレンダー サービスで作成されたカレンダーの ID を保存します。ユーザーがカスタムの [会議] メニューから [会議を設定] をクリックすると、プロパティ サービスはカレンダー ID プロパティが存在するかどうかを確認して、イベント登録システムがすでに設定されているかどうかを確認します。これにより、フォームとカレンダーの重複作成を回避できます。
- Google フォーム サービス: スプレッドシートの情報から、参加者がセッションに登録できるフォームを作成します。
- スクリプト サービス: 参加者がフォームに記入したときに起動するトリガーを作成します。
- ドキュメント サービス: 参加者が登録したイベントのイベント 情報を取得し、 イベントのリストを新しいドキュメントに追加します。スクリプトは、参加者にドキュメントの編集権限を付与します。
- メールサービス: 日程表ドキュメントを 参加者にメールで送信します。
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
次のボタンをクリックして、会議のセッションの登録を作成する サンプル スプレッドシートのコピーを作成します。このソリューションの Apps Script プロジェクトは、スプレッドシートに添付されています。
[会議] [>] [会議を設定] をクリックします。このカスタム メニューが表示されない場合は、ページの更新が必要になることがあります。
メッセージが表示されたら、スクリプトを承認します。 <<../_snippets/oauth.md>>
[会議] [>] [会議を設定] をもう一度クリックします。
スクリプトを実行する
- [ツール] [>] [フォームを管理] [>] [公開フォームに移動] をクリックします。
- フォームに情報を入力して送信します。
- 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 にアクセスします。
- [**会議フォーム**] を右クリックし、[**削除**] > [**ゴミ箱に移動**] をクリックします。
ソリューションをリセットしたら、独自のデータを追加するか、サンプルデータを引き続き使用して、スクリプトを再度実行できます。
コードを確認する
このソリューションの Apps Script コードを確認するには、 [ソースコードを表示]をクリックします:
ソースコードを表示
Code.gs
</section>
寄稿者
このサンプルは、Google デベロッパー エキスパートの協力のもと、Google によって管理されています。