<第5回>

フォームテンプレートの作成

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

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
   
  InfoPathのフォームでアンケートの回答を集めてExcel2003で読み込んで集計する、という方法を説明してきた。今回はInfoPathにおけるフォーム作りを説明する。説明は少し長いが、やっていることは白紙のフォームにコントロールを配置してプロパティを設定する、という作業だけである。実に簡単なのだ。
   
新しい空白のフォームを用意する
   
 

InfoPathを起動したら「作業ウィンドウ」の「フォームのデザイン」をクリックし、フォームのデザインを開始する。

   
   
 

新しいフォームのデザインを行うには、「データソースから新規作成」、「新しい空白のフォーム」、「サンプルのカスタマイズ」の3つの方法がある。既にXMLのスキーマがあるか、SQLServerまたはAccessデータベースからフォームを作成する場合は「データソースから新規作成」を選ぶ。ここではInfoPath独自にデータを作るので「新しい空白のフォーム」をクリックする。

   
 

 

 

新しい空白のフォームができた。

   
   
繰り返しセクションを作る
   
 

フォントの大きさを18ポイント程度に大きくして、「進路アンケート」のようにフォームのタイトルを書く。次にコントロールを選ぶために、作業ウィンドウの「コントロール」をクリックする。

   
   
 

アンケートの回答時には、各人は自分のデータだけを入力する。しかし、保存された複数のフォームを結合して最終的に一つのフォームにまとめたいときは、データ入力時には一件のレコードだけでよい場合でも、フィールドを「繰り返しセクション」に入れておき、複数のレコードを一つのフォームで処理できる形にしておく必要がある。

フォームに「繰り返しセクション」を作るには、作業ウィンドウの「コントロール」−「コントロールの挿入」で「繰り返しセクション」を選んでクリックする。

   
   
 

「繰り返しセクション」ができた。

次に「繰り返しセクション」の内側にレイアウト用の表を配置したいので、作業ウィンドウの「レイアウト」をクリックする。

   
   
レイアウト用の表の挿入
   
  フォームに配置するコントロールの位置をそろえるには、レイアウト用の表を使う。「繰り返しセクション」の内側をクリックして、作業ウィンドウの「レイアウト」−「レイアウト用の表の挿入」から「ユーザー定義の表」をクリックする。
   
   
  「表の挿入」ウィンドウで、作りたい表の行数と列数を変更する。ここでは列数3、行数2の表を作ることにする。
   
 
   
  3列2行の表が「繰り返しセクション」の内側にできた。
   
   
テキストボックスの配置
   
  「繰り返しセクション」内部の表の左上のセルに「氏名」という表題を書く。次に「テキストボックス」を配置するため、作業ウィンドウの「コントロール」をクリックする。
   
   
  データを入力する「フィールド」に相当するものが「テキストボックス」である。作業ウィンドウの「コントロール」−「コントロールの挿入」から「テキストボックス」をクリックして配置する。
   
   
 

「テキストボックス」が配置された。

「テキストボックス」を配置すると、「フィールド1」という名前のフィールドが自動的に生成する。テキストボックスを選択するとフィールド名が表示され、緑色のアイコンが表示される。これは正しくデータにバインドされているというインジケータだ。

   
   
  フィールド名を変更するため、フィールドを選択した状態で「書式」メニューの「テキストボックスのプロパティ」をクリックする。
   
   
 

「テキストボックスのプロパティ」ウィンドウの「データ」タグで「フィールド名」の項目がある。これを「フィールド1」から「氏名」に変更し、「OK」ボタンをクリックする。

ここで決めた「フィールド名」がXMLデータのフィールド名になる。

   
 
   
  「氏名」の入力もれがないように「必須」チェックボックスをチェックして「OK」ボタンをクリックする。
   
 
   
ドロップダウンリストボックスの配置
   
 

ドロップダウンリストは、あらかじめ登録された項目から選ばせるコントロールである。

まず表のセルに「分類」という項目名を入力しておく。そして「作業ウィンドウ」の「コントロールの挿入」で「ドロップダウンリストボックス」をクリックして配置する。

   
   
 

「ドロップダウンリストボックス」が配置された。配置された「ドロップダウンリストボックス」にマウスを重ねると、緑色のアイコンとともに「フィールド2」という名前が表示される。これがドロップダウンリストボックスコントロールに自動的に付けられたフィールド名だ。

ドロップダウンリストボックスのプロパティを設定するため、ドロップダウンリストボックスを選択した状態で、「書式」メニューの「ドロップダウンリストボックスのプロパティ」をクリックする。あるいはドロップダウンリストボックス自体を右クリックしてもいい。

   
   
リストデータの設定
   
  「データ」タグでは、まず「フィールド名」をデフォルトの「フィールド2」から「分類」に変更する。ここでのフィールド名がXMLデータのフィールド名になる。
   
 
   
 

次に、フィールドの項目はテキストで表示されるが、データそのものは数字で登録されるようにするため、「データ型」を変更しよう。「データ型」の項目をドロップダウンして「整数」を選択するのだ。

   
 
   
 

入力もれを防ぐために「入力規則」のチェックボックスをチェックしておき、続いてリストボックスのリストを設定する。ドロップダウンリストボックスで表示される選択肢のリストは、あらかじめ保存されたデータを使うか、フォームごとに個別に設定するかのどちらかが選べる。選択肢の数が多いときや後で更新される可能性が高い場合、他のデータと連携を保ちたい場合は「データベース、Webサービス、またはファイルから設定する」を選ぶのが良いと思われるが、ここでは手動で入力して項目を設定してみる。

「リストボックス項目を手動で入力する」のラジオボタンをオンにし、「追加」ボタンをクリックする。

   
 
   
 

「選択肢の追加」ウィンドウで「値」と「表示名」を入力する。

「表示名」はリストボックスに表示される選択肢の文字列であり、「値」はその項目を選択したときにフィールドに保存される値である。ここでは「4年制大学」という項目がリストに表示され、それを選択すると「1」という数値がフィールドに保存されるようになる、という設定だ。

もちろん「表示名」と「値」を同じにして、「4年制大学」を選択して「4年制大学」がフィールドに保存されるという設定にしてもいいが、そのためには「データ型」を「テキスト」にしておかなければならない。ここではデータ型を「整数」としたので、整数値しか値が取れないようになっている。

   
 
   
 

「追加」のボタンをクリックしながら、リストボックスの選択肢を入力していく。登録したデータを変更したいときは、変更したい項目を選んで「変更」ボタンをクリックする。削除したいときは「削除」ボタンを押す。リストはこの順番で表示されるので、並び順を変えたいときは「上へ移動」「下へ移動」のボタンを使って並び替える。「規定値に設定」ボタンを使えば、その項目がデフォルトで選択された状態にすることができるが、ここでは規定値の設定はしていない。

設定ができたら「OK」ボタンをクリックしてフォームに戻ろう。

   
 
   
  「ドロップダウンリストボックス」が配置された。
   
   
オプションボタンの配置
   
 

次の項目に「オプションボタン」を使ってみる。「オプションボタン」は「ラジオボタン」または「トグルボタン」とも言われるもので、いくつかの選択肢からただ一つだけを選んでデータを入力するものである。

表の次のセルに「センター試験」という表題を入力し、「作業ウィンドウ」の「コントロール」−「コントロールの挿入」から「オプションボタン」をクリックする。

   
   
  「オプションボタンの挿入ウィンドウが表示された。ここで設定するのは「挿入するオプションボタンの数」だけであり、必要な選択肢の数だけボタンを作ることになる。
   
 
   
  「オプションボタン」が配置された。フィールド名は「フィールド3」という名前が自動的に付けられている。
   
   
 

選択する内容を示すために、ボタンの後ろの「フィールド3」の文字列を選択肢の内容にあわせて変更する。ここではセンター試験を受験するのかしないのか、を選択させることにした。

   
   
  「オプションボタンのプロパティ」を設定しよう。まず上のボタンを選択した状態で「書式」メニューの「オプションボタンのプロパティ」をクリックする。
   
   
  「オプションボタンのプロパティ」ウィンドウが表示された。「データ」タグで「フィールド」の項目が自動的に設定された「フィールド3」になっている。これを「センター試験」に変更しよう。ここの「フィールド名」がXMLデータのフィールド名になるのだ。
   
 
   
  次に「データ型」を「整数」に変更する。
   
 
   
 

デフォルトでは「クリック時の値」が「1」となっているので、そのことを確認する。これで、このボタンを選択したときに「1」の数字データが「センター試験」フィールドに登録されることに設定されたことになる。デフォルトの状態を決めておくなら「規定でこのボタンを選択する」にチェックしておけばいい。

未入力を避けるため「必須」のチェックボックスをチェックし、「OK」ボタンをクリックする。

次に下側のボタンに対しても同じ操作を行う。ただボタンに共通の項目は設定されているので、プロパティを開くと「フィールド名」「データ型」「必須」の項目は設定されている。「クリック時の値」はデフォルトで「2」になっているはずだ。

   
 
   
  「オプションボタン」が配置された。
   
   
チェックボックスの配置
   
 

次に「チェックボックス」を使おう。「チェックボックス」は同時に複数選択可能な項目に対して使うものだ。表の次のセルをクリックしておいて、「作業ウィンドウ」の「コントロールの挿入」から「チェックボックス」を必要なだけクリックする。ここでは3つの選択肢を作っている。

チェックボックスはそれぞれ別々のフィールドとしてXMLデータになる。デフォルトではフィールド名が「フィールド4」「フィールド5」「フィールド6」のように設定される。

   
   
  選択肢がわかるように、チェックボックスの後ろの文字を変更し、改行を加えてわかりやすくする。
   
   
  最初の「チェックボックス」を選択し、プロパティを変更する。「書式」メニューから選ぶか、右クリックから「チェックボックスのプロパティ」を選ぶ。
   
   
  「チェックボックスのプロパティ」ウィンドウが開いた。「フィールド名」はデフォルトの「フィールド4」となっている。このフィールド名を選択肢の項目にあわせて変更しよう。
   
 
   
 

「フィールド名」を「六月」に変更した。また、「データ型」は「はい/いいえ」のブーリアン型、「規定の状態」は「オフ」、「オフのときの値」は「いいえ」で、「オンのときの値」は「はい」でいいだろう。

「必須」の項目はチェックしないでおき、「OK」ボタンをクリックする。

これと同様に他のチェックボックスのプロパティも設定しよう。

   
 
   
  「チェックボックス」が配置された。
   
   
データソースの確認
   
 

これでフォームは完成したが、間違いなく設定ができたかを、データソースで確認しておこう。「作業ウィンドウ」の「データソース」を選択し「使用するデータソース」を見るのだ。

「マイフィールド」の下に「グループ1」というグループがある。「グループ1」の前にある「+」マークをクリックして、データツリーを展開しよう。

   
   
  データツリーを展開したところである。「グループ1」の下に「グループ2」があり、その中に「氏名」、「分類」、「センター試験」、「六月」、「九月」、「十一月」の各フィールドがある。これらのフィールド名は「テキストボックス」、「ドロップダウンリストボックス」、「オプションボタン」、「チェックボックス」の各プロパティで設定した「フィールド名」である。また「必須」のチェックボックスをチェックした必須入力項目には、赤色のアステリスクが付いている。
   
   
フォームテンプレートの保存
   
  「ファイル」メニューの「名前を付けて保存」をクリックし、完成したフォームテンプレートを保存する。
   
   
 

フォームテンプレートの保存には「発行」と「保存」がある。「発行」とはネットワーク上の共有フォルダやWindowsSharePointServiceを使ってフォームテンプレートを共有する場合に行う。ここでは自分のコンピュータに「保存」してみよう。

   
 
   
  保存先は「マイドキュメント」、ファイル名は「進路アンケート」として「保存」ボタンをクリックする。
   
 
   
  保存ができたら「フォームの入力」でテストしてみよう。
   
   
 

このページでは、InfoPathで「進路アンケート」のフォームテンプレートの作り方を紹介した。InfoPathは多くの機能を持っているが、フォームの作り方の基本がわかれば、後は応用しだい、と思う。InfoPathとExcel2003とのXMLデータ連携は、これで紹介を終わる。次はアクセスのデータとの連携を紹介したいと思っている。

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

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