ファイルの行ごとの読み込み
 文字列の分解/結合
 構造体
 動的配列(構造体の配列)
 変数のスコープ
 標準モジュールとフォームモジュール
 モーダルウインドウ

特記事項:
 MsFlexGridを使用します

※以下の課題はひとつのVBプロジェクトとして作成します。


課題その1 入力と表示

 step1 ファイルから入力

  ファイルの内容は以下のとおり
  ---------------------------
  1,鈴木
  2,佐藤
  3,吉田
  4,山田
  ---------------------------
  これを読み込んで構造体の配列に保存する関数を作ってください。

  引数はファイル名です。

  関数の戻り値はファイルから読み込んだ行数を返したください。
  読み込んだデータは引数の構造体の配列に格納します。
  配列は動的配列とし、関数内部でRedimで確保します。

  関数は標準モジュール内に作ります。
  格納する構造体の配列はモジュール内でグローバルで宣言してください。

  ----------------------------------------------------
  '構造体
  Type Meibo
   ID  As Long
   Name As String
  End Type

  'グローバル配列変数
  Dim gMeibo1() As Meibo
  'データの数を保存する変数
  Dim gCount As Long

  '変数の雛形は以下の通り
  Function ReadFileToRecord(FileName As String)

  End Function

  ----------------------------------------------------

 step2 結果の表示

  

  ・MsFlexGridをひとつとボタンをひとつ貼り付けたフォームを用意して
  作った関数を実行し、結果(構造体の配列)を表示してください。


課題その2 画面からデータを入力して構造体の配列に付け足す

 step1 関数の作成 (標準モジュール内)
  構造体に格納したデータを渡すと、構造体の配列に要素を付け足しデータを
  格納する関数を作成してください
  ここでいう構造体の配列は課題1のstep1のグローバル配列変数と同じものです。

  ----------------------------------------------------
  '関数の雛形
  Function AddDataToRecord(Data As Meibo)
  
  End Function
  ----------------------------------------------------

 step2

  

  このようなフォームをプロジェクトに新たに作成してください。

  ボタンのイベントでstep1の関数を使ってテキストに入力された内容を
  構造体に格納します。

  登録ボタンで次の入力チェックを行ってください。

  1.番号が空白のときは「番号を入力してください」というメッセージを表示して
    フォーカスを番号のテキストボックスに移動する。

  2.番号が数字以外で入力されたときは「番号は数字で入力してください」という
    メッセージを表示してフォーカスを番号のテキストボックスに移動する。

  3.名前が空白のときは「名前を入力してください」というメッセージを表示して
    フォーカスを名前のテキストボックスに移動する。

 step3
  課題その1のフォームに「入力」ボタンを配置して入力機能を組み込んでください。

  

  ボタンの機能:
   入力フォームを開く。
   入力が行われた後、一覧を更新して入力されたデータを表示する。
   ただし、入力がキャンセルされたときは更新しない。

課題その4 保存機能
 step1
  配列の構造体からファイルにデータを保存する関数を作成してください。
  ファイルの形式は課題その1と同じにしてください。
  
  ----------------------------------------------------
  '関数の雛形
  Function WriteFileFromRecord(FileName As String)
  
  End Function
  ----------------------------------------------------

 step3
  課題その1のフォームに「保存」ボタンを配置して保存機能を組み込んでください。

  

  ボタンの機能:
   構造体の配列にデータがあるときはそのデータをファイルの保存する。
   データがないときは「保存するデータはありません」というメッセージを表示する。(保存はしない)

課題その5 小さめの課題を2つ。
 1.同じ番号を入力できなくする。
 2.常にリストが番号順に並ぶようにする。→ヒント


課題その6 項目を増やす。
  生年月日 文字列型
  血液型  文字列型
  登録日  日付型、ファイルには"2003/01/23 15:50:23"の形で保存する。
  
  ・ファイル入出力関数の変更。
  ・データ追加関数も変更。
  ・リストの列数を増やす。
  ・入力フォームのテキストボックスを増やす。


課題その7 閲覧機能
  ボタンを押すと、選択した行のデータを課題その2のようなフォームに表示する
  機能を組み込んでください。


課題その8 変更機能
  課題その5で表示したデータで、テキストボックスの内容を変更して、登録ボタンを押すと
  データ(構造体の配列)が変更できるようにしてください。


課題その9 削除機能
  一覧のリストで、選択した行のデータを削除する機能を組み込んでください。


課題その10 リストのソート。
  実はMSFlexGridにはソート機能があります。
  その10ではその機能を使ってより簡単にソート機能を実現します。