ファイルの行ごとの読み込み
文字列の分解/結合
構造体
動的配列(構造体の配列)
変数のスコープ
標準モジュールとフォームモジュール
モーダルウインドウ
特記事項:
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ではその機能を使ってより簡単にソート機能を実現します。