このサンプルでは、Google スプレッドシート に試験問題をリストし、そこから Google フォーム のテストを作成する方法をご紹介します。
以下のリンクからサンプルシートがコピー可能です。まずはサンプルで利用したい Google アカウント を選択し、スプレッドシート をコピーしてお使いください。
Google フォーム の操作サンプル ※スプレッドシートをコピーする Google アカウントが必要ですスプレッドシート をコピーしたら、適当な質問をリストし、以下のテスト作成ボタンをクリックしてください。その後 Google ドライブ を確認すると、テストのフォーム が作成されています。
<応用編>
それではここから一歩進んで、100題などの問題をスプレッドシート にリストしておき、その中から好きな数の問題数をランダムに抽出してフォーム を作成することをシミュレーションしたスプレッドシート を作成してみたいと思います。以下から別のサンプルをコピーしてください。
Google フォーム の操作サンプル – ランダム抽出対応 ※スプレッドシートをコピーする Google アカウントが必要です先程はボタンにスクリプトを実行する機能を追加していましたが、メニューに追加する方法もあります。以下のスクリプトをコピーしてスプレッドシート についている Google Apps Script の コード.gs の先頭に貼り付けてみます。
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('テスト作成');
menu.addItem('すべての問題でフォーム を作成', 'createForm1');
menu.addItem('ランダムに問題選択', 'selectQuestions');
menu.addItem('問題抽出シートからフォーム を作成', 'createForm2');
menu.addToUi();
}
function createForm1(){
ShtName = 'フォームテスト';
CreateTestForm(ShtName);
}
function createForm2(){
ShtName = '問題抽出シート';
CreateTestForm(ShtName);
}
保存し、スプレッドシート のほうをリロード、もしくはファンクションの onOpen を選択して実行してみてください。これはシートが開かれたときに実行されるイベントハンドラ(何かのイベントで実行される機能)ファンクションです。
こちらはメニューバーにアイテムを追加するスクリプトです。以下のようにメニューが追加されたのがわかるかと思います。
・すべての問題でフォーム を作成:createForm1(すべての問題でフォーム を作成)
・ランダムに問題選択:selectQuestions (N2の黄色のカラムに入った数値分の問題を出現回数の低い順に選択して「問題抽出シート」に記述)
・問題選択からフォーム を作成: createForm1(「問題抽出シート」からフォーム を作成)
次に、「フォームの URL 」のタブには、作成されたフォーム のURL がアップデートされるように以下のコードを
Browser.msgBox(FormTitle+’の作成が完了しました。\\nフォームは Google Drive の『ドライブ』に存在します。’);
の直前に記入してみましょう。
// フォーム作成完了表示
var sht3 = SpreadsheetApp.getActive().getSheetByName("フォームのURL");
sht3.getRange(1,2).setValue(Form.getPublishedUrl());
sht3.getRange(2,2).setValue(Form.getEditUrl());
これでフォーム が作成された際、ドライブ にいかなくても、スプレッドシート の「フォーム のURL」のタブからURLのリンクがわかるようになりました。
完成したスクリプトのついたスプレッドシート はこちらです。
Google スプレッドシートからフォームを作成(応用編・改修版) ※スプレッドシートをコピーするGoogle アカウントが必要です
「Google スプレッドシート から Google フォーム を作成」への6件の返信
お世話になっております。
応用編のスプレットシートを使わせていただいております。フォームに問題をランダム作成するとこまではできるのですが、答えが反映されません。解決方法はありますでしょうか?
大変長らくお待たせし、申し訳ございませんでした。
一部スプレッドシートに付随するスクリプトに不備がありましたので修正し、新しいものをアップしております。
お手数ですが再度コピーしお試しいただけないでしょうか。
どうぞよろしくお願いいたします。
はじめまして。
地方で教員をしているunoと申します。フォームからのテスト作成がとても煩雑で悩んでいる際、この記事を発見し、こんなに楽にテストが作成できるのかと感動しました。
ただ、掲載いただいているgoogleフォームの操作サンプルを使わせていただき試しにテストを作成したのですが、解答がフォームに反映されておらず、いろいろ試してみたのですが皆目原因が見当つかない状況です。
大変勝手なメッセージを送らせていただいているのは十分承知の上なのですが、どのようにすれば解答をフォームに反映させることが出いますでしょうか。
大変長らくお待たせし、申し訳ございませんでした。
一部スプレッドシートに付随するスクリプトに不備がありましたので修正し、新しいものをアップしております。
お手数ですが再度コピーしお試しいただけないでしょうか。
どうぞよろしくお願いいたします。
丁寧なご返信、ご対応ありがとうございます!
試させていただいたのですが、問題を抽出したのちにフォームに反映した際、点数等は反映されているのですが、正解の解答番号が反映されていない状況でした。。
ランダム選出フォーム作成完成というタイトルのファイルをお使いでしょうか。
こちらでは正解が反映するようにしておりますので、お手数ですがファイルを再度ご確認いただけますと幸いです。
よろしくお願いいたします。