初心者でも簡単!GASでフォームのタイムスタンプを取得する方法
GASを使って、Googleフォームのタイムスタンプを取得したいんだけど、スプレッドシートを使わずに直接取れないかな…?

猫男

catman
それなら「FormApp」を使えば直接フォームの回答からタイムスタンプを取得できるぞ!フォームIDがわかればOKだ!
GASでGoogleフォームの回答タイムスタンプを取得する
Googleフォームの回答に含まれるタイムスタンプを、スプレッドシートを経由せずに直接取得するには、FormApp
を使うのが効果的だ。
フォームIDの確認方法
フォーム編集画面のURLを見てみよう:
https://docs.google.com/forms/d/★ここがフォームID★/edit
この「★ここがフォームID★」に該当する部分を控えておこう。
スクリプトを作成する
GASエディタで以下のスクリプトを作成してみよう:
function getAllTimestampsFromForm() {
const form = FormApp.openById("フォームIDをここに");
const responses = form.getResponses();
responses.forEach(response => {
const timestamp = response.getTimestamp();
Logger.log("回答日時: " + timestamp);
});
}
💡 すべての回答に対して、Logger にタイムスタンプを出力するぞ。
実行と確認
この関数を実行すると、フォームに保存されているすべての回答の日時がログに出力される。
フォームの回答が削除されていなければ、過去の履歴も含めて取得可能だ。
フォームから直接タイムスタンプが取れるの、めちゃくちゃ便利だね!これを応用すれば集計とかにも使えそう!

猫男
フォームのタイムスタンプ活用アイデア
フォームの回答日時が取得できれば、次のような用途にも応用できる。
1. 一定期間内の回答だけ抽出
特定の日付以降の回答を絞り込むことで、最新の投稿だけを処理したり、日次・週次で分析したりできる。
2. 一番古い回答 or 最新の回答だけ取り出す
以下は最新の回答1件のタイムスタンプだけを取得する例:
function getLatestTimestamp() {
const form = FormApp.openById("フォームIDをここに");
const responses = form.getResponses();
if (responses.length === 0) return;
const latest = responses[responses.length - 1].getTimestamp();
Logger.log("最新の回答日時: " + latest);
}
練習問題
GASを使って、Googleフォームの1件目の回答のタイムスタンプを取得する関数を書いてみよう。
解答と解説
function getFirstTimestamp() {
const form = FormApp.openById("フォームIDをここに");
const responses = form.getResponses();
if (responses.length === 0) return;
const first = responses[0].getTimestamp();
Logger.log("最初の回答日時: " + first);
}
このスクリプトでは、FormApp.openById()
で対象のフォームを開き、getResponses()
で全回答を取得している。
最初の回答は配列の0番目に格納されているため、responses[0].getTimestamp()
でそのタイムスタンプを取得できる。

catman
この方法なら、フォームの履歴があればスプレッドシートなしでもいけるぞ。ログ管理やデータ処理も自由自在さ!