プログラミング フロントエンド

【GAS】Googleフォームでプルダウンで日付を自動生成する方法

スポンサーリンク

こんにちは!

今回は「GASでGoogleフォームのプルダウンで日付を自動生成する方法」についてお伝えしたいと思います。

Googleフォームの日付プルダウンを自動で生成するにはGASを使って解決することができます。

ご参考になれば幸いです。

Googleフォームのプルダウンで日付を自動生成する

プルダウンで日付を自動生成するには日付オブジェクトとformの関数を使用します。

今回は例として、「Googleフォームの1つ目の質問に明日、明後日の日付を設定する」処理を実装します。

1. 新しくGoogleフォームを作成し、1つ目の質問に初期値を設定しておく

日付の初期値を設定しておき、毎日日付を書き換えるイメージです。

設定しておかないとエラーになるのでご注意ください。

2. Googleフォームからスクリプトエディタを開く

Googleフォームを編集モードで開き、「送信」ボタン右のメニューから「スクリプトエディタ」を開きます。

3. GASのコードを修正する

以下のように修正します。

function createSelectBox(){
  // Googleフォームからスクリプトエディタを開いた場合、開いた元のGoogleフォームを取得する
  const form = FormApp.getActiveForm();
  const item = form.getItems()[0];

  const todayDate = new Date();
  // 曜日変換用の配列
  const dayOfWeekArr = [ "日", "月", "火", "水", "木", "金", "土" ];

  // プルダウンに設定する項目一覧
  const insertDataArr = [];

  // 明日、明後日の日付を取得
  const tomorrow = new Date()
  tomorrow.setDate(todayDate.getDate() + 1);
  const dayAfterTomorrow = new Date()
  dayAfterTomorrow.setDate(todayDate.getDate() + 2);
  const dateList = [tomorrow, dayAfterTomorrow];

  for (const date of dateList) {
    // 日付を加工する
    const resultDate = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy月MM月dd日');
    // 曜日を取得
    const dayOfWeek = date.getDay();
    const dayOfWeekStr = dayOfWeekArr[dayOfWeek];
    const output = `${resultDate}(${dayOfWeekStr})`
    insertDataArr.push(output);
  }

  // プルダウンを項目をinsertDataArrに書き換える
  item
    .asListItem()
    .setChoiceValues(insertDataArr)
    .setRequired(true);
}

 

スクリプトエディタの実行ボタンをクリックすると、日付が書き換わっていると思います。

4. GASのトリガーを設定する

今回は日付の生成なので、毎日深夜0時に処理が実行されるようにスケジューリングするのが望ましいと思います。

こちらの記事がわかりやすかったので、参考にしてみてください〜

以上、お疲れさまでした!🍵

スポンサーリンク

-プログラミング, フロントエンド

© 2024 エンジニア×ライフハック Powered by AFFINGER5