<第7回>

長文穴埋め問題を作る

兵庫県立西宮香風高等学校 松本吉生

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
 
 

次の問題は長文穴埋め問題だ。問題の元になる文を教科書の本文から引用することはよくあるが、このとき、引用した一節に、解答としたい重要語句が何度か繰り返し出現することがある。それぞれ別の解答欄にして答えさせても良いのだが、同じ語句は一つの解答欄として文の意味がとおるようにしたものがより良い問題といえる。

ひとつの問題の中に同じ解答フィールドを複数設定することは、InfoPathにとって特に仕掛けを作る必要はなく、全く簡単なことである。

   
データソースの作成
   
 

ではまず、「ビュー作業ウィンドウ」から「問題4」のビューを選択しよう。

   
 
   
 

「問題4」のビューには、すでに問題3へ戻る「前の問題」ボタンと、問題5へすすむ「次の問題」ボタンがある。

作業ウィンドウを「データソース作業ウィンドウ」に切り替え、「化学小テストの解答」フィールドを選択して右クリックし「追加」をクリックする。これまでの作業と同じように、「解答4-1」「解答4-2」「解答4-3」のフィールドを追加しよう。なお、フィールド名に数字やアルファベットを使う場合は、半角で入力しなければならない。

   
 
 
 
 
   
繰り返しセクションの作成
   
 

データソース作業ウィンドウから「解答4-1」フィールドをクリックして選択し、ビューにドラッグすると、「解答4-1」フィールドのテキストボックスを含む繰り返しセクションができる。

   
 
 
   
問題文の作成
   
  「解答4-1」が解答欄(1)となるように問題文を繰り返しセクションの中に書く。
   
 
   
  さらに問題文を続けて、解答欄(2)のところまで書く。
   
 
   

テキストボックスの追加

   
 

データソース作業ウィンドウから「解答4-2」のフィールドをクリックして選択し、繰り返しセクションの解答欄(2)の場所にドラッグする。

   
 
   
 

「解答4-2」フィールドのテキストボックスができた。

   
 
   
 

解答欄(2)続いて問題文を書いていく。次の解答欄は、解答(1)と語句が同じだ。

   
 
   

重複データを保存するテキストボックス

   
 

次の解答欄は(1)と同じだ。しかし、すでに繰り返しセクションには「解答4-1」フィールドのテキストボックスが作ってあるが、気にせずもう一度データソース作業ウィンドウから「解答4-1」フィールドをクリックして選択し、繰り返しセクションにドラッグする。

   
 
   
 

「解答4-1」フィールドのテキストボックスができた。

このとき、「解答4-1」テキストボックスには、注意をうながす青いアイコンが表示される。マウスを重ねると「コントロールは重複データを保存します」というポップアップが表示される。一般的にはひとつの繰り返しセクションに同じフィールドを複数作ることは考えられないので、このような注意が示されるのだ。

だがここではあえてこのようなフォームを作ることを意図しているので、このままでかまわない。

   
 
 
   
 

続けて問題を書き、解答欄に相当するフィールドを繰り返しセクションにドラッグしてテキストボックスを作っていく。

   
 
   
 

問題ができた。複数回出現する解答欄は「重複データを保存するテキストボックス」となり、青いアイコンがついている。

   
 
   
コントロールのサイズ変更
   
 

InfoPathのコントロールは、複数選択したときに変更できるプロパティに制限がある。唯一変更できるのはコントロールのサイズに関するプロパティである。

デフォルトで生成するテキストボックスのサイズは大きすぎるので、まとめて一度に変更することにしよう。

複数のコントロールを選択するには、ひとつのコントロールを選択したあと、「Shift」キーまたは「Ctrl」キーを押しながら次のコントロールをクリックしていく。

問題文中に作ったテキストボックスを全て選択できたら、どれかのテキストボックスの上でマウスを右クリックし、「プロパティ」をクリックする。

   
 
   
 

コントロールを複数選択した場合、「プロパティ」で表示されるのは「サイズ」タブだけである。

   
 
   
 

正解の文字数から考えて、「サイズ」の「幅」を60ピクセルとした。「OK」ボタンをクリックしてサイズを適用する。

   
 
   
 

テキストボックスの幅が変更され、レイアウトが整った。

   
 
   
繰り返しセクションのプロパティ
   
 

繰り返しセクションのプロパティを開き、解答者によってセクションの挿入や削除ができないように変更する。

   
 
   
 

「ユーザーによるセクションの挿入と削除を許可する」のチェックを外し、「OK」ボタンをクリックする。

   
 
 
   
動作規則の追加
   
 

解答欄に空欄があったとき、注意をうながすダイアログを表示し、次の問題にすすめない動作規則を設定しよう。この動作規則は「次の問題」ボタンに設定することにする。

「次の問題」ボタンを選択して右クリックし「ボタンのプロパティ」をクリックする。

   
 
   
 

「ボタンのプロパティ」ウィンドウで「動作規則」をクリックする。

   
 
   
 

このボタンには、すでに「問題6へ」の動作規則が作ってある。ここで「追加」ボタンをクリックし、新しい動作規則を追加する。

   
 
   
動作規則の名前
   
 

「動作規則」のウィンドウで、まず今から作る動作規則の名前をつける。

   
 
   
 

「未解答をチェック」という名前にした。次に「条件の設定」ボタンをクリックする。

   
 
   
条件の設定
   
 

「条件」ウィンドウが表示された。

ここで設定する条件は、解答欄のどれかが空白であったとき、という設定にする。まず「解答4-1」が「空白である」を指定し、「AND/OR」ボタンをクリックして条件を追加し、「解答4-2」が「空白である」、「解答4-3」が「空白である」の条件を追加していく。各条件は「OR」で結合する。

条件の設定が完了したら「OK」ボタンをクリックする。

   
 
   
動作の追加
   
 

「動作規則」のウィンドウで、「条件」のところに設定した条件が表示されているので確認しよう。

そしてこの条件に合致したとき、実行する動作を「動作の追加」ボタンをクリックして設定する。

   
 
   
 

「動作」のウィンドウで、動作はデフォルトの「ダイアログボックスメッセージを表示する」のままとし、「メッセージ」を「すべての解答を入力してください」とする。できたら「OK」ボタンをクリックする。

   
 
   
動作規則の処理の停止
   
 

この動作規則の条件が適用されるとき、つまり解答のどれかが空白であったとき、次の問題にすすめないようにしたい。そこで「この動作規則が完了したら規則の処理を停止する」のチェックボックスをチェックする。

   
 
   
 

チェックを入れたら「OK」ボタンをクリックして動作規則の設定を完了する。

   
 
   
動作規則の適用順
   
 

これで「次の問題」ボタンに2つの動作規則が設定された。複数の動作規則があるとき、動作規則は上から順に適用される。

ここでは「問題5へ」の動作規則よりも「未解答をチェック」の動作規則を先に実行させるため、「未解答をチェック」の動作規則をクリックして選択し、「上へ移動」ボタンをクリックする。

   
 
   
 

「未解答をチェック」の動作規則が上になり、先に実行されるようになった。「OK」ボタンをクリックする。

   
 
   
ボタンの移動
   
 

あらかじめボタンがあるところに繰り返しセクションを作ったので、問題文よりボタンが上にあるフォームになった。ボタンは問題文の下にあるのが良いので、ボタンを選択して繰り返しセクションの下にドラッグする。

   
 
 
   
フォームのプレビュー
   
 

これで問題4のビューは完成した。「フォームのプレビュー」ボタンをクリックして動作を確認しよう。

   
 
   
 

最初の解答(1)のテキストボックスに解答を入力してエンターキーをクリックすると、次の解答(1)テキストボックスにも同じ解答が反映される。

また、未解答のテキストボックスを残したまま「次の問題」ボタンをクリックし、注意をうながすダイアログが表示されることも確認しよう。

   
 
 
 
 
   
このページのまとめ
   
 

データソースに解答フィールドを追加し、繰り返しセクションを作成する。このとき、同じフィールドをバインドしたテキストボックスを複数作成すると「重複データを保存するテキストボックス」となる。通常はこのような複数のフィールド割り当てることは考えられないため、注意を示す青のアイコンが示される。しかしこの場合はそれが意図するところであり、問題はない。

重複データを保存するテキストボックスを作ったときには、そのどれかひとつのテキストボックスに入力をすれば、同じフィールドにバインドされた他のテキストボックスにも入力結果が反映されることとなる。これが長文の穴埋め問題には都合がよい。

また今回には、複数のコントロールを選択して、サイズを一括で変更することをやってみた。レイアウト上コントロールのサイズを揃えるためには、この方法を使えばよい。

次回は小論文形式の問題を作る。解答文に指定のキーワードを必ず使うことと、文字数の制限をつけることをチェックするフォームを作る。

なお、このページでは、特に断りのない限り、Excel2003とInfoPath2003SP1を使って説明している。Excelの旧バージョンはXMLの対応が完全ではないので、同様の結果が得られないことをあらかじめ断っておく。筆者のメールアドレスはymatsumoto@hyogo-c.ed.jpだ。

       
  mailto:ymatsumoto@hyogo-c.ed.jp :←ここをクリックして筆者にメールを送る
       
 
matsumotoyshio.com 2006/01/21