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

2025年5月7日水曜日

Google Formsのグリッドで「1 列につき 1 つの回答に制限」したい


今回はグリッドの質問で右下の︙メニューにある「1 列につき 1 つの回答に制限」を試してみます


フォームの編集画面




フォームの回答画面

同じ列で2つ以上選択するとエラー表示が出るようになります



それぞれの列で選択できるのはひとつだけ





Apps Scriptで実装する場合に追加するコード例
const gridValidation = FormApp.createGridValidation()
.setHelpText('Select one item per column.')
.requireLimitOneResponsePerColumn()
.build();
item.setValidation(gridValidation);


コード全体

Code.gs
function createGridWithValidation() {
const formName = 'English Proficiency Self-Assessment';
const description = 'Please select your self-assessed English proficiency level.';
const title = 'Please select your self-assessed English proficiency level.';

const rows = ['Vocabulary', 'Pronunciation', 'Grammar', 'Culture'];
const columns = ['1', '2', '3', '4', '5'];
const helpText = '1 = Beginner, 5 = Advanced';

const form = FormApp.create(formName);
form.setDescription(description);

const item = form.addGridItem();
item.setTitle(title)
.setRows(rows)
.setColumns(columns)
.setHelpText(helpText)
.setRequired(false);

form.setPublished(false);

const gridValidation = FormApp.createGridValidation()
.setHelpText('Select one item per column.')
.requireLimitOneResponsePerColumn()
.build();
item.setValidation(gridValidation);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}



Reference

addGridItem() 


setValidation(validation) 




Google Formsのグリッドで行を並べ替えてみる(UI操作のみ)


フォームの右下にある︙アイコンをクリックして「行を並べ替える」を選択すると

回答フォームを開くたびに行の順番がランダムに入れ替わって表示されるようになります

※ この設定は Apps Script のメソッドにはなさそうでした(執筆時 2025/05/07 現在)


フォームの編集画面



フォームの回答画面

編集画面では Vocabulary, Pronunciation, Grammar, Culture の順ですが

回答画面では Culture, Vocabulary, Grammar, Pronunciation の順になっています

次に開いたときはまた順番が変わって表示されます


Reference

addGridItem() 



関連記事

Google Formsで選択式(グリッド)の質問を作りたい


Google Formsで選択式(グリッド)の質問を作りたい


今回は「選択式(グリッド)」の質問について書いていきます


フォームの編集画面


入力項目に値を入力していきます

今回は「Vocabulary, Pronunciation, Grammar, Culture」を5段階で評価する質問にしています


フォームの回答画面




Apps Script で作成する場合

以下の Code.gs で formName, description, title, rows, columns, helpText の値を書き換えて

createGrid() を実行すると

編集用のURLがログに出力されます




Code.gs
function createGrid() {
const formName = 'English Proficiency Self-Assessment';
const description = 'Please select your self-assessed English proficiency level.';
const title = 'Please select your self-assessed English proficiency level.';

const rows = ['Vocabulary', 'Pronunciation', 'Grammar', 'Culture'];
const columns = ['1', '2', '3', '4', '5'];
const helpText = '1 = Beginner, 5 = Advanced';

const form = FormApp.create(formName);
form.setDescription(description);

const item = form.addGridItem();
item.setTitle(title)
.setRows(rows)
.setColumns(columns)
.setHelpText(helpText) // 質問下の補足説明
.setRequired(false);

form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}



Tips

「各行で 1 つの回答を必須にする」トグルスイッチは




Reference

addGridItem() 


setValidation(validation) 







Google Formsで5段階のハートで評価する質問を作りたい


ハートで評価する質問を作る場合

質問の種類を「☆評価」にして「♡」のアイコンを選択します


フォームの編集画面



「♡」の他に「☆」と「👍️」を選択可能です


今回は「5」段階で「ハート」アイコンでの評価にしました


フォームの回答画面




Apps Script で作成する場合

以下の Code.gs で formName, description, title, scale, icon の値を書き換えて

createScaleQuestion() を実行すると

編集用のURLがログに出力されます




Code.gs
function createRatingQuestion() {
const formName = 'Service Satisfaction Survey';
const description = 'We value your opinion. Please rate the quality of this form using hearts.';
const title = 'How satisfied are you with this form?';
const scale = 5; // 5段階評価に設定
const icon = FormApp.RatingIconType.HEART; // ハートアイコンを使用

// Create a new form
const form = FormApp.create(formName);
form.setDescription(description);

// Add a new rating item
const ratingItem = form.addRatingItem();

// Update the rating item's properties
ratingItem
.setTitle(title)
.setRatingScaleLevel(scale)
.setRatingIcon(icon)
.setRequired(false);

form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}



Tips

icon の種類は3つ選択できます(※この記事執筆時(2025/05/07)現在)
  • STAR
  • HEART
  • THUMB_UP


Reference

addRatingItem() 
setRatingScaleLevel(ratingScaleLevel) 

setRatingIcon(ratingIcon) 



Google Formsで1〜5段階評価の質問を作りたい


Googleフォームで1〜5段階評価の質問を作る場合は

質問の種類を「均等目盛」にします


フォームの編集画面

段階は「0」から「10」まで設定できます


今回は評価1が「Beginner」で評価5が「Expert」として作成しています


フォームの回答画面




Apps Script で作成する場合

以下の Code.gs で formName, description, title, min, max, leftLabel, rightLabel の値を書き換えて

createScaleQuestion() を実行すると

編集用のURLがログに出力されます



Code.gs
function createScaleQuestion() {
const formName = 'Google Forms Proficiency Survey';
const description = 'Please rate your Google Forms proficiency.';
const title = 'How proficient are you with Google Forms?';
const min = 1;
const max = 5;
const leftLabel = 'Beginner';
const rightLabel = 'Expert';

// Create the form
const form = FormApp.create(formName);
form.setDescription(description);

// Add scale question
const item = form.addScaleItem();
item.setTitle(title)
.setBounds(min, max)
.setLabels(leftLabel, rightLabel)
.setRequired(false);

form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}





Tips

Beginner, Expert などのラベルは省略可能です

フォームの編集画面



フォームの回答画面



Reference

addScaleItem() 
setLabels(lower, upper) 

setBounds(lower, upper) 


Google Formsで選択肢に「その他」入力を追加したい(showOtherOption)


ラジオボタンとチェックボックスの質問には

「その他」の入力欄を追加できます

(プルダウンの質問には追加できないようです)


フォームの編集画面

「その他」を追加 をクリックすると選択肢の最後に「その他…」が追加されます


フォームの回答画面

回答する際には「その他」を選択して入力することができるようになります




Apps Script で作成する場合

以下の Code.gs で formName, description, title の値を書き換えて

createMultipleChoiceWithOther() を実行すると

編集用のURLがログに出力されます



Code.gs
function createMultipleChoiceWithOther() {
const formName = 'Favorite Color Survey';
const description = 'Please tell us your favorite color.';
const title = 'What is your favorite color?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addMultipleChoiceItem();
item.setTitle(title)
.setChoiceValues(['Red', 'Blue', 'Green', 'Yellow'])
.showOtherOption(true) // ← これで「その他」の入力欄を表示
.setRequired(false);
form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}


フォームの編集画面


フォームの回答画面




Tips

チェックボックスに実装する場合
function createCheckboxWithOther() {
const formName = 'Favorite Colors Survey';
const description = 'Please tell us your favorite colors.';
const title = 'What are your favorite colors?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addCheckboxItem();
item.setTitle(title)
.setChoiceValues(['Red', 'Blue', 'Green', 'Yellow'])
.showOtherOption(true) // ← これで「その他」の入力欄を表示
.setRequired(false);
form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}





Reference

Class MultipleChoiceItem > showOtherOption(enabled) 

Class CheckboxItem > showOtherOption(enabled) 


関連リンク

Google Formsでプルダウンの質問を作りたい


Googleフォームでプルダウンの質問を作る場合は

質問の種類を「プルダウン」にします


フォームの編集画面



フォームの回答画面





Apps Script で作成する場合

以下の Code.gs で formName, description, title, setChoiceValues の値を書き換えて

createDropdownQuestion() を実行すると

編集用のURLがログに出力されます



Code.gs
function createDropdownQuestion() {
const formName = 'Favorite Color Survey';
const description = 'Please tell us your favorite color.';
const title = 'What is your favorite color?';

const form = FormApp.create(formName);
form.setDescription(description);

const item = form.addListItem();
item.setTitle(title)
.setChoiceValues(['Red', 'Blue', 'Green', 'Yellow', 'Other'])
.setRequired(false);

form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}


Tips 

プルダウンでは「その他」の入力欄を追加することはできないようです


Google Formsで長文の回答の質問を作りたい


Googleフォームで長文回答の質問を作る場合は

質問の種類を「段落」にします


フォームの編集画面



フォームの回答画面




Apps Script で作成する場合

以下の Code.gs で formName, description, title の値を書き換えて

createParagraphAnswerQuestion() を実行すると

編集用のURLがログに出力されます



Code.gs
function createParagraphAnswerQuestion() {
const formName = 'Favorite Color Survey';
const description = 'Please tell us your favorite color and why.';
const title = 'Why do you like this color?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addParagraphTextItem();
item.setTitle(title);
item.setRequired(false);
form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}



Reference

addParagraphTextItem() 




Google Formsで短い回答の質問を作りたい


Googleフォームで短い回答の質問を作る場合は

質問の種類を「記述式(短文)」にします


フォームの編集画面



フォームの回答画面




Apps Script で作成する場合

以下の Code.gs で formName, description, title の値を書き換えて

createShortAnswerQuestion() を実行すると

編集用のURLがログに出力されます



Code.gs
function createShortAnswerQuestion() {
const formName = 'Favorite Color Survey';
const description = 'Please tell us your favorite color.';
const title = 'What is your favorite color?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addTextItem();
item.setTitle(title);
item.setRequired(false);
form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}



Reference

addTextItem() 

Google Formsで非公開のフォームを作成したい(setPublished)


手動でフォームを新規作成する場合は非公開で作成されますが

Apps Scriptで setPublished() を書かずにフォームを作ると

公開状態でフォームが作成されるようです

setPublished() の () の中には true か false が入ります
  •  setPublished(true): 公開
  •  setPublished(false): 非公開

以前書いた Google Formsで単一選択の質問を作りたい では setPublished() を指定していないため

作成後に公開済みのURLが取得できています

今回は setPublished(false) にして非公開で作成してみます




Code.gs
function createMultipleChoice() {
const formName = 'Favorite Color Survey';
const description = 'Please tell us your favorite color.';
const title = 'What is your favorite color?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addMultipleChoiceItem();
item.setTitle(title)
.setChoices([
item.createChoice('Red'),
item.createChoice('Blue'),
item.createChoice('Green'),
item.createChoice('Yellow'),
item.createChoice('Other')
])
form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
Logger.log('Form Published URL: ' + form.getPublishedUrl());
}


実行後にForm Edit URLとForm Published URLが出力されます


Form Edit URLを開くと未公開状態のフォーム編集画面が開きます


公開済みの場合は「公開」ボタンの背景色が白くなります


実行後のログにはForm Published URL(公開済みのURL)も出力されますが

非公開なのでアクセスしてもフォームは表示されません


Reference


setPublished(enabled)

2025年5月6日火曜日

Google Formsで質問を必須にしたい(setRequired)


質問エリアの右下にある「必須」のトグルスイッチで右側をクリックして「オン」にします


フォームの編集画面


フォームの回答画面





コードで実装する場合

質問に .setRequired(true) を追加します


Code.gs
function createMultipleChoice() {
const formName = 'Favorite Color Survey';
const description = 'Please tell us your favorite color.';
const title = 'What is your favorite color?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addMultipleChoiceItem();
item.setTitle(title)
.setChoices([
item.createChoice('Red'),
item.createChoice('Blue'),
item.createChoice('Green'),
item.createChoice('Yellow'),
item.createChoice('Other')
])
.setRequired(true);

Logger.log('Form Edit URL: ' + form.getEditUrl());
Logger.log('Form Published URL: ' + form.getPublishedUrl());
}


Tips

コード上では .setRequired(true) を書かなければ必須になりません

明示的に『必須ではない』と指定したい場合は .setRequired(false) と書きます

Google Formsで複数選択可能な質問を作りたい


Googleフォームで複数選択可能な質問を作る場合は

質問の種類を「チェックボックス」にします


フォームの編集画面


フォームの回答画面




Apps Script で作成する場合

以下の Code.gs で formName, description, title, item.createChoice() の値を書き換えて

createCheckbox() を実行すると

編集用のURLがログに出力されます


Code.gs
function createCheckbox() {
const formName = 'Favorite Colors Survey';
const description = 'Please tell us your favorite colors.';
const title = 'What are your favorite colors?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addCheckboxItem();
item.setTitle(title)
.setChoices([
item.createChoice('Red'),
item.createChoice('Blue'),
item.createChoice('Green'),
item.createChoice('Yellow'),
item.createChoice('Other')
])
.setRequired(false);
form.setPublished(false);

Logger.log('Form Edit URL: ' + form.getEditUrl());
}



Reference

addCheckboxItem() 

Class CheckboxItem


関連記事


Google Formsで単一選択の質問を作りたい


フォームの編集画面で作成する場合

Googleフォームで「ラジオボタン」を選択して

自身の環境に合わせてフィールドを入力して


回答者へのリンクをコピーして開くと


作成されたフォームが表示されます





Apps Script で作成する場合

以下の Code.gs で formName, description, title, item.createChoice() の値を書き換えて

createMultipleChoice() を実行するとフォームが作成されます



Code.gs
function createMultipleChoice() {
const formName = 'Favorite Color Survey';
const description = 'Please tell us your favorite color.';
const title = 'What is your favorite color?';

const form = FormApp.create(formName);
form.setDescription(description);
const item = form.addMultipleChoiceItem();
item.setTitle(title)
.setChoices([
item.createChoice('Red'),
item.createChoice('Blue'),
item.createChoice('Green'),
item.createChoice('Yellow'),
item.createChoice('Other')
]);

Logger.log('Form Edit URL: ' + form.getEditUrl());
Logger.log('Form Published URL: ' + form.getPublishedUrl());
}


ログに出力されるForm Edit URLにアクセスするとフォームの編集画面が開きます
Form Published URLにアクセスするとフォームの入力画面が開きます



Reference

addMultipleChoiceItem() 

getPublishedUrl() 



Latest post

Google Formsのグリッドで「1 列につき 1 つの回答に制限」したい

今回はグリッドの質問で右下の︙メニューにある「1 列につき 1 つの回答に制限」を試してみます フォームの編集画面 フォームの回答画面 同じ列で2つ以上選択するとエラー表示が出るようになります それぞれの列で選択できるのはひとつだけ Apps Scriptで実装する場合に追加する...