2025年5月10日土曜日

Google Formsで回答の受付を停止したい(setAcceptingResponses)


一度公開したGoogleフォームを非公開状態に戻すことはできませんが

回答の受付を停止することは可能です




公開したフォームの回答を停止する手順を中心に書いていきます


(「制限付き」設定で自分以外のアクセスを制限する方法もあります→ 下記 Tips 2 )




ここではフォームが公開されている状態を前提とします



フォームの編集画面

右上の「公開」をクリックすると

表示される「回答を受付中」がオンになっています


それをオフにすると「回答を受け付けていません」に変わります


保存してフォームを開くと

質問が表示されず「回答の受け付けが終了しました」と表示されます


フォームの回答画面




Apps Script で作成する場合

以下の Code.gs で formUrl の値を書き換えて

closeFormByUrl() を実行すると

URLで指定したフォームは回答の受付を停止します



Code.gs
function closeFormByUrl() {
const formUrl = 'https://docs.google.com/forms/d/FORM_ID/edit';

// URLでフォームを取得
const form = FormApp.openByUrl(formUrl);

// 回答受付を停止
form.setAcceptingResponses(false);
}


Tips 1

フォームに表示するメッセージを変えたい場合

回答の受付をオフにする際「編集」をクリックします



「このフォームでは回答の受付が終了しています。」という入力欄に
表示させたいメッセージを入力します



この例では「回答を締め切りました」と入力して保存します



フォームの回答画面




Tips 2

一番上に書いたように

一度公開したGoogleフォームを非公開状態に戻すことはできませんが

公開の範囲を自分だけに限定すれば

自分以外の誰もアクセスできなくすることはできます

Google Formsの回答者を限定したい(UI操作のみ) で書いた「制限付き」を設定します


フォームの編集画面

左上の「公開」ボタンをクリックして

その後に表示される回答者の「管理」をクリックします



回答者ビューで「リンクを知っている全員」の横の▼をクリックして

「制限付き」を選択します



アクセスできるユーザーはオーナーである自分のみ

回答者ビューが「制限付き」であることを確認して「完了」します



次の画面で「保存」をクリックします


これで自分以外はフォームにアクセスできなくなります


フォームの回答画面

自分以外のアカウントで開くと「アクセス権が必要です」という画面になる