• 締切済み

Vb.NetでFor~Nextの使い方

登録したデータの中から該当するID(データの頭2つ)を抜き出し、それを参照にLabel5と6に名前と所属のデータを表示させています。 該当データがない場合はLabel4に該当なしと表示します。 下の様に作ってみたのですが、どのIDを打っても名前と所属はちゃんと出るのですが、該当なしまで一緒に表示されます。 これはどこを変更したらいいのでしょうか? Public Class Form1 Dim data(9) As String Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Data(0) = "01山田 花子     デバイス部" 以下Data(9)まで続く・・       End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For i = 0 To 9 If Mid(ShainData(i), 1, 2) = TextBox1.Text Then Label5.Text = Mid(Data(i), 3, 9) Label6.Text = Mid(Data(i), 13, 2) Else Label4.Text = "該当なし。" End If Next

みんなの回答

noname#259269
noname#259269
回答No.2

ロジック追えば当たり前でしょう。 1行ずつデバッグ実行してみればすぐ分かる筈ですよ。 #新人研修か何かかなぁ。

  • masaji999
  • ベストアンサー率32% (18/55)
回答No.1

For i = 0 To 9 If Mid(ShainData(i), 1, 2) = TextBox1.Text Then Label5.Text = Mid(Data(i), 3, 9) Label6.Text = Mid(Data(i), 13, 2) Else Label4.Text = "該当なし。" End If Next 上記の部分ですがボタンを押したときに0~9回、回っているようなので、そのうち8回はelseに入ってるようです if文には一回だけ入ればよい elseには上記に一回も入らなければ入る条件にすればよい たとえば For i = 0 To 9 If Mid(ShainData(i), 1, 2) = TextBox1.Text Then Label5.Text = Mid(Data(i), 3, 9) Label6.Text = Mid(Data(i), 13, 2) End If Next if Label5.Text.文字数 = 0 Then Label4.Text = "該当なし。" end if このようにしたらどうでしょうか