こんにちは!
今回は「GASでGoogleフォームのプルダウンで日付を自動生成する方法」についてお伝えしたいと思います。
Googleフォームの日付プルダウンを自動で生成するにはGASを使って解決することができます。
ご参考になれば幸いです。
Contents
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時に処理が実行されるようにスケジューリングするのが望ましいと思います。
こちらの記事がわかりやすかったので、参考にしてみてください〜
以上、お疲れさまでした!🍵