<第10回>

エクスポート用のビュー

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

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
 
  データを保存したInfoPathのフォームは、XMLデータである。Excel2003はXMLのインポート機能があるので、フォームのデータをそのまま読み込むことができる。しかし、XMLのインポート機能がないExcelのバージョンを使うときには、InfoPathからExcelファイル形式へのエクスポート機能を使う。

このとき、InfoPathのエクスポート機能では、表示しているビューに置かれたコントロールのフィールドデータだけがエクスポートされることになっている。そこで、ここで作った小テストのフォームのように、複数のビューにフィールドが分かれている場合には、データを一括してエクスポートできない。そこで、エクスポートのためのビューを作る必要がある。

   
新しいビューの追加
   
 

「化学の小テスト」のフォームをデザインビューで開き、「ビュー」作業ウィンドウから「新しいビューの追加」ボタンをクリックする。

   
 
   
 

「ビューの追加」ウィンドウで、新しいビュー名を「エクスポート用」としよう。

   
 
 
   
  エクスポート用のビューができた。
   
 
   
繰り返しテーブルの作成
   
 

作業ウィンドウを「データソース」作業ウィンドウに変え、「マイフィールド」の下の「解答」繰り返しグループを選択し、ビューへドラッグする。

マウスのボタンを離すとメニューが出るので、「繰り返しテーブル」をクリックする。

   
 
 
   
 

繰り返しテーブルができた。

この繰り返しテーブルは、「解答」グループのフィールドを全て含んでいる。各データのテキストボックスの大きさが不揃いだが、このフォームはデータを画面に表示させるためでなく、エクスポートするだけなので、このままでよい。

   
 
   
エクスポート用のビューを既定にする
   
 

作業ウィンドウを「ビュー」作業ウィンドウにし、「エクスポート用」のビューを右クリックして「既定に設定」をクリックする。これで、このフォームを開いたときに、「エクスポート用」のビューが表示されることになる。

   
 
   
 

「エクスポート用」のビューが既定になった。

   
 
   
フォームテンプレートの保存
   
 

これでエクスポート用のフォームが完成したので、「ファイル」−「名前を付けて保存」でフォームテンプレートを保存する。ファイル名は「化学の小テストエクスポート」のように、生徒が解答するフォームと異なる名前にする。

   
 
 
 
   
エクスポート用フォームの利用
   
 

エクスポート用のフォームを保存したら、フォームを開く。

   
 
   
  フォームを開くと新しいデータができるが、ここでは、すでに保存されたデータを読み込んでエクスポートするだけなので、繰り返しテーブルの行の左にある▽アイコンをクリックし、「解答の削除」を行う。
   
 
 
   
  未入力のフィールドを示す赤色のアステリスクが消え、全くデータが入っていないフォームになった。
   
フォームの結合
   
 

メニューから「ファイル」−「フォームの結合」をクリックし、ファイルとして保存された生徒の解答をフォームに呼び出して結合する。

   
 
   
 

「フォームの結合」ウィンドウで、生徒が解答を保存したフォルダを選択し、「SHIFT」キーを押しながらファイルをクリックして、結合したい全てのファイルを選択し「結合」ボタンをクリックする。

   
 
 
 
   
  生徒の解答データが結合された。「解答5」は小論文なので、小さいフィールドに縦に長く文章が入っている。画面を下にスクロールすると、解答が結合されたことがわかる。
   
 
   
エクセルファイルへのエクスポート
   
 

生徒の解答をすべて結合できたら、これをエクセルのファイル形式へエクスポートする。

「ファイル」メニューの「エクスポート先」−「Microsoft Office Excel」をクリックする。

   
 
   
 

「Excel にエクスポート ウィザード」が動く。

   
 

   
 

ウィザードの2ページ目では、「フォームのフィールドと、このテーブルまたはリスト」にし、リストに表示された「解答(my:マイフィールド/my:解答)」を選択し、「次へ」をクリックする。

   
 
 
   
 

次の画面では、エクスポートするデータを選択する。デフォルトでフォームに存在する全てのフィールドがチェックされているので、そのまま「次へ」ボタンをクリックする。

   
 
   
 

エクスポートウィザードの最後に、「このフォームのみからデータをエクスポートする」が選択されていることを確かめ、「完了」ボタンをクリックする。

   
 
   
  「フォームをExcelにエクスポート中」とのメッセージウィンドウが表示され、自動的にエクスポートされたデータを表としてエクセルが起動する。
   
 
   
このページのまとめ
   
 

XMLのインポート機能のないExcel2002以前を使う場合でも、InfoPathの「エクスポート」機能を用いてExcelファイルにデータを変換することができるのだ。このとき、すでに記録されたXMLデータがある場合は、InfoPathで「結合」の操作でXMLデータを結合し、まとめてエクスポートすることができる。

このときの注意点として、InfoPathからエクスポートされるデータは、エクスポートするときのビューに依存し、ビューにコントロールとして配置されたフィールドしかエクスポートされないことである。したがって既存のフォームを利用して全てのフィールドをエクスポートしたい場合は、エクスポート用に全てのフィールドを配置したビューを追加し、そのビューからエクスポートの操作をすればよい。

このシリーズは今回で終了する。次はこのような小テストをSQLServerをデータベースとして構築するものを紹介する予定だ。小テストの結果をデータベースに格納すれば、採点の自動化や学習の履歴管理ができるなどメリットが大きい。だがInfoPathでSQLServerに接続する場合、データを送信することとクエリを実行できるのは「メイン接続」だけである。解答テーブルと問題テーブルを別に作ったとき、解答テーブルをメイン接続で接続すると、問題テーブルはセカンダリ接続で行わなければならず、クエリを実行できない問題がある。この点を工夫するノウハウを公開する予定だ。楽しみにしていてほしい。

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

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