Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2025年5月10日土曜日

Google Formsを公開して回答を受け付けたい


フォームを作ったら「公開」して回答を受け付けられるようにします

今回は Google Formsで単一選択の質問を作りたい で作ったフォームを例にします



フォームの編集画面

右上の「公開」ボタンをクリックします
(以前は「送信」ボタンでしたが「公開」ボタンに変更されたようです)


今回は「リンクを知っている全員」が回答できるように公開してみます


公開すると「公開」のボタンの色が変わります



クリックしてみると「回答を受付中」がオンになっています



「回答者へのリンクをコピー」をクリックすると

フォームの回答ページへのリンクが表示されます



「URLを短縮」にチェックを入れるとリンクのURLが短く表示されます



コピーしたリンク先にアクセスするとフォームの回答画面が表示されます


フォームの回答画面





Apps Script で作成する場合

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

publishFormByUrl() を実行すると

URLで指定したフォームが「公開」状態になり

ログにその公開されたフォームのURLが出力されます



Code.gs
function publishFormByUrl() {
const formUrl = 'https://docs.google.com/forms/d/FORM_ID/edit';
// URLでフォームを取得
const form = FormApp.openByUrl(formUrl);
// フォームを公開状態に設定
form.setPublished(true);
Logger.log('Form Published URL: ' + form.getPublishedUrl());
}



Tips

現状の自分の理解まとめ
  1. 「公開」したら「回答を受付中」になる
  2. 「公開」したら「非公開」に戻すことはできない
  3. 回答の受付を停止したい場合は「回答を受付中」をオフにする
  4. アクセス権の制限で限定公開できる
  5. Education版 や Business版の場合は管理者が公開範囲を制限できる
  6. フォームを「削除」したらフォームにも回答にもアクセスできなくなる
    • 基本的に公開したフォームは削除しない



Tips 2

フォームを新規作成して一度も編集していない場合

上記の Code.gs を実行すると以下のようなエラーが出ました

Exception: No item with the given ID could be found. Possibly because you have not edited this item or you do not have permission to access it.



Reference

フォームを公開して回答を取得する
関連記事


Latest post

スプレッドシートの空白セルを直前の値で埋めたい

A列の空白セルに直前の値を入れたくて書いたコードです スプレッドシートに以下のようなBeforeの表があるとき (A列に空白セルがある) Before 1 A B 2 エリア 都市 3 東京 新宿 4 渋谷 5 池袋 6 神奈川 横浜 7 川崎 8 相模原 9 千葉 千葉 10 ...