• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルを択一式問題を量産したい。)

エクセルを利用して択一問題を量産する方法

このQ&Aのポイント
  • エクセルを利用して択一問題を量産する方法について考えています。具体的には、日本史の問題を例に取りながら説明します。まず、問題のリード文を作成し、それに対する選択肢を組み合わせて問題を作ります。選択肢は5つあり、重複しないように組み替えます。さらに、選択肢の一部を変更して誤答肢を作ります。最終的には、エクセルのプログラムを使用して自動化することが可能です。
  • エクセルを使って択一問題を効率的に量産する方法について考えています。特に、日本史の問題を例に取りながら説明します。まず、問題のリード文を作成し、それに対する選択肢を組み合わせて問題を作ります。選択肢は5つあり、重複しないように組み替えます。また、選択肢のうちの一部を変更して誤答肢を作ります。最終的には、エクセルのプログラムを使って自動化することができます。
  • エクセルを使って択一問題を大量に作成する方法について考えています。具体的には、日本史の問題を例に取りながら説明します。まず、問題のリード文を作成し、それに対する選択肢を組み合わせて問題を作ります。選択肢は5つあり、組み合わせのパターンが多くなるため、重複しないように注意が必要です。最後に、エクセルを使用して自動化することで、短時間で大量の択一問題を作成することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

2つ3つののフェーズがあるでしょう。 (1)正しい問題から、派出して、間違いの問題を(1問関連で)4つ作る過程。 (2)正しい問題1つと、4つの誤りの問題を1セットに組み合わせる過程《 3)5つの1セットの問題の順序を偏りをなくす過程。 ーー (1)は自動でプログラムで作るのは難しいと思う。質問している質問者のレベルでは多分難しい(出来る人は質問などしないで手をつけて、行き詰った点で質問する) (2)は多分正しい問題から派生させて問題を作っているので組み合わせは決定していると思う。 この正答にしてこの誤答ありだろうから。 ーー また 正しいにしろ、誤りにしろ、問題番号を振っておいて、その問題文を引いてくることはVLOOKUP関数(VBAでも使える)で出来るでしょう。 (3)は1-5の乱数を振って、素の乱数でソートすれば、順序は乱数順になるが、基から考えると、順序にはクセはなくなるだろう。 ーーーーーーーーー だから (1)人間が正しい問題文を作る。Aグループ (2)その問題文の語句の中で1-2箇所紛らわしいように変更する。Bグループ 《例)室町時代のーー>江戸時代の《時・場所を変える) 僧XXが行ったーー>  僧YYが行った(行為主体を変える) XXは存在したーー>XXは存在しなかった(存在を反対に) XX物を作ったーー>YYを作った(対象を変える) などパターン化は可能だろうかな。 (3)Aグループ1つBクループ4つを組み合わせる。ここには対応関係を人間が付けないとちぐはぐな組み合わせになろう。 そのちぐはぐさまで判定はプログラムでは出来ない。 ただ問題の中には全くかけ離れた問題を組み合わせている問題にも出くわすがどう考えるか (例)西南戦争は西郷隆盛が鹿児島で・・    太平洋戦争は主にサイパンで行われた 上の問題と関係ないが、こういうのを入れるかどうかは作成者の見識であろう。 (3)で述べた、5つの選択肢の印刷順序は乱数でやれるだろう。そして番号により問題文章を引いてくることは関数など出来るだろう。 ーー さてVBAでやるほうが、ましな個所は何処だろう。 そういう点があれば、その点に絞って質問すべきでしょう。 質問者がVBAの経験があるか、も付記して。 ーー 全般的に、5選択肢の出題順序のこと以外は、パソコンやプログラムでやろうと言うのは漫画チックでないだろうか。

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

追加です その後 F9を押す(もしくは適当なセルにデータを入力する)たびに選択肢が変わります。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

5個セットのものが10あってそのなかからそれぞれランダムに1個ずつ10セット選ぶということでしょうか Randを使えばできます =INT(RAND()*(6-1)+1) とかで たとえば選択肢に番号をつけて一覧にしますA1,B1から始まっているとします 1 選択肢1 2 選択肢2 3 選択肢3 4 選択肢4 5 選択肢5 6 選択肢6 7 選択肢7 8 選択肢8 9 選択肢9 10 選択肢10 以下略 用いる選択肢を表示したいセルに =VLOOKUP(INT(RAND()*(6-1)+1),A:B,2,FALSE) =VLOOKUP(INT(RAND()*(11-6)+6),A:B,2,FALSE) 以下略 とします。

関連するQ&A