見出し画像

Googleフォームでプルダウンメニューに「明日からの1週間の日付」を自動で表示する

Googleフォームでの質問の選択肢を毎日自動で更新出来たらいいのになと思ったことはありませんか?
例えば、明日から1週間の日付だけをプルダウンメニューの選択肢にしたいとか。
Googleフォームで、プルダウンの選択肢に明日から1週間の日付を自動的に表示させるためには、Google Apps Script(GAS)を使用することで実現できます。この記事では、そのためのGASコードとトリガーの設定方法を具体的に解説します。

1. 前提条件

この記事では以下の手順に従って進めます:

  • Googleフォームを既に作成済みであること

  • Googleフォームの編集権限があること

では、早速設定していきましょう!


2. GAS(Google Apps Script)の設定手順

ステップ1: Googleフォームのスクリプトエディタを開く


  1. Googleフォームを開きます。

  2. 右上の「3つの点」メニューから「スクリプトエディタ」をクリックします。

  3. スクリプトエディタの新しいウィンドウが表示されます。


ステップ2: プルダウンメニューに日付を追加するスクリプトを書く

以下のコードをスクリプトエディタに貼り付けます。このスクリプトは、フォーム内のプルダウンリストに「明日から1週間の日付」を自動的に追加するものです。

function updateDropdownWithDates() {
  // GoogleフォームのIDを取得する
  var form = FormApp.openById('あなたのフォームIDをここに入力');
  
  // 対象の質問のIDを取得する(プルダウンリストの質問)
  var item = form.getItems(FormApp.ItemType.LIST).filter(function(item) {
    return item.getTitle() === '日付を選んでください';  // 質問のタイトルを記載
  })[0].asListItem();
  
  // 明日から1週間の日付を取得する
  var today = new Date();
  var choices = [];
  
  for (var i = 1; i <= 7; i++) {
    var date = new Date(today);
    date.setDate(today.getDate() + i);
    
    var formattedDate = Utilities.formatDate(date, Session.getScriptTimeZone(), 'yyyy/MM/dd');
    choices.push(formattedDate);
  }
  
  // プルダウンリストの選択肢を更新する
  item.setChoiceValues(choices);
}

スクリプトの解説

  • FormApp.openById('あなたのフォームIDをここに入力'): フォームIDを指定してフォームを取得します。フォームIDは、フォームURLの末尾の長い英数字の部分です。

  • item.getTitle() === '日付を選んでください': ここでプルダウンメニューの質問を指定します。フォーム上の質問タイトルに応じて適切に変更してください。

  • Utilities.formatDate(date, Session.getScriptTimeZone(), 'yyyy/MM/dd'): 日付を「YYYY/MM/DD」形式にフォーマットします。

ステップ3: フォームIDを指定する

スクリプトの中で、'あなたのフォームIDをここに入力'とある部分に、実際のGoogleフォームのIDを記入します。IDは、GoogleフォームのURLにある「https://docs.google.com/forms/d/**[ここがフォームID]**/edit」部分にあります。


3. スクリプトのトリガーを設定して自動化

スクリプトは手動で実行することもできますが、毎日自動的に更新されるようにトリガーを設定することをお勧めします。これにより、毎日最新の日付が自動でプルダウンに表示されます。

ステップ1: トリガーの設定


  1. スクリプトエディタのメニューから「時計アイコン」(トリガー)をクリックします。

  2. 「トリガーを追加」ボタンをクリックします。

  3. 「updateDropdownWithDates」を選択し、実行タイミングを設定します。

    • イベントの種類: 「時間主導型」

    • 時間ベースのトリガー: 「日付ベースのタイマー」

    • 頻度: 「毎日」

これで、毎日指定した時刻にスクリプトが実行され、Googleフォームのプルダウンメニューが更新されるようになります。


4. 動作確認と注意点

動作確認

トリガーを設定したら、スクリプトが正常に動作するかを確認しましょう。

  1. フォームを開き、プルダウンメニューを確認します。

  2. プルダウンに「明日から1週間の日付」が正しく表示されているかを確認します。

注意点

  • スクリプトが動作しない場合、フォームのIDや質問のタイトルが正しく設定されているか確認してください。

  • 何かエラーが発生した場合、スクリプトエディタの「ログ」を確認して、エラーの内容を特定しましょう。


5. おわりに

この記事では、Googleフォームのプルダウンメニューに「明日から1週間の日付」を自動で表示するためのGASスクリプトとトリガーの設定方法を紹介しました。この方法を活用することで、日付選択の手間を省き、フォームをより効率的に運用できるようになります。もしカスタマイズが必要であれば、コードを少し調整することで柔軟に対応できるでしょう。

フォームの自動化をさらに進めたい場合や、他のGASの使い方について興味があれば、ぜひ他の記事もご覧ください!


この記事が気に入ったらサポートをしてみませんか?