本記事は2025/10/03現在の情報です。アップデート等で改善されている可能性があります。
2025年2月以降、Google Apps Script(GAS)のフォーム操作において、回答を締め切った後のメッセージを変更するスクリプト setCustomClosedFormMessage が正常に実行されないという不具合が発生しています。
これまで作成していたGASスクリプトのうち、フォームの開閉を操作するスクリプトで不具合が発生するかもしれません。
今回は、正常に実行されない場合の対処法について説明していきます。
不具合の内容
以下のような内容のスクリプトを実行しようとすると、「フォームを更新するデータが無効です」というエラーが発生します。
function closeForm(){
const form = FormApp.openByUrl('[フォームのURL]');
form.setAcceptingResponses(false);
form.setCustomClosedFormMessage('[閉じたときのメッセージ]');
}
対処法
公式としての見解や原因は不明ですが、フォームが閉じている状態だとメッセージを変更できないようです。
そのため、フォームが開いている状態にして、メッセージを変更してから閉じる、といった流れで正式に実行できます(つまり閉じる前にメッセージを変更するといったイメージです)。
function closeForm(){
const form = FormApp.openByUrl('[フォームのURL]');
// フォームを1回開いてからメッセージを変更
form.setAcceptingResponses(true);
form.setCustomClosedFormMessage('[閉じたときのメッセージ]');
form.setAcceptingResponses(false);
}
なぜこのようになったのか?
公式が正式に発表されていないため、考察にはなりますが、Googleフォームのバージョンアップがきっかけなのではと考えています。
Googleフォームは、公開設定やデザインなどが変更された最新版に切り替わっており、その切り替えで内部的な機能の仕様も変更されたのではと推測されます。
ドキュメントでの実行例は、閉じてからメッセージを変えるといったスクリプトになっているため、閉じてからでも設定できるようになるか、それとも現状維持なのか、公式の回答が気になるところですね。
setCustomClosedFormMessage に関するIssueは、以下のフォーラムで共有されていますので、併せてご確認ください。
