-PR-
解決済み

配列を使ってみたんですけど

  • すぐに回答を!
  • 質問No.54687
  • 閲覧数64
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 57% (8/14)

Textboxが20個あってこの中で1つでもTextboxにテキストが入力されていればOKで、もしすべてのTextboxが空白(何も入力されない時は)Textboxに文字を入力するようにエラーを出したいのですが、配列を使ってやろうとしたのですが、なかなかうまく出来ません。

他に何かよい方法はありますでしょうか?教えてください。
よろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル5

ベストアンサー率 40% (2/5)

テキストボックス(任意の数)とコマンドボタンを1つだけ用意したフォームを作ってテストしてみました。
こんなのでどうでしょう?
VB5.0で作成しました。
コマンドボタンが押されるときに、テキストボックスの中身をチェックする仕組みになっています。

Option Explicit

Private Sub Command1_Click()
MsgBox "Good Job!"
End Sub

Private Sub Form_Load()
Dim i As Integer

For i = 0 To Text1.UBound
Text1(i).Text = ""
Next i

End Sub

Private Sub Text1_LostFocus(Index As Integer)
Dim i As Integer
Dim blnFlg As Boolean

If ActiveControl.Name = "Command1" Then
blnFlg = True
For i = 0 To Text1.UBound
If Text1(i).Text <> "" Then
blnFlg = False
Exit For
End If
Next i

If blnFlg Then
MsgBox "Input Error"
Text1(0).SetFocus
End If
End If
End Sub
お礼コメント
oohchan

お礼率 57% (8/14)

こんにちは。早速ご回答ありがとうございました。

私が作ったコードでは、カウンタ内でフラグをたてているのに、
Exit For をしていませんでした。

修正して、動作確認しました。
これからもっともっと勉強していきたいと思います。

本当にありがとうございました。
投稿日時 - 2001-03-22 13:13:26
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.3
レベル8

ベストアンサー率 43% (20/46)

おはようございます。 蛇足ながら、なぜうまく行かなかったのかを 下のKai_PGさんのコードを例に考えてみます。 ポイントは判定ループ内ですが、 > For i = 0 To Text1.UBound >  If Text1(i).Text <> "" Then >   blnFlg = False >   Exit Fo ...続きを読む
おはようございます。

蛇足ながら、なぜうまく行かなかったのかを
下のKai_PGさんのコードを例に考えてみます。

ポイントは判定ループ内ですが、
> For i = 0 To Text1.UBound
>  If Text1(i).Text <> "" Then
>   blnFlg = False
>   Exit For
>  End If
> Next i

(1)判定フラグをTrueで初期化しなかった。
 (blnFlg = True)
 これをやらないと、トラップできませんね。

(2)判定のIf文にElseをつけて blnFlg = False とやって、
 Exit For をしていなかった。
 せっかく入力済みのテキストボックスを見つけても、
 次に空白があるとフラグが真になってしまいます。

すでにお分かりかと思いますが、丸写しではなく、
是非oohchanさんがお書きになったコードと比較されて、
どこが悪かったのかをお考えになって、
そのコードを修正するようにしてみましょう。

oohchanさんのスキルアップの少しでもお役に立てたら幸いです。
お礼コメント
oohchan

お礼率 57% (8/14)

こんにちは。早速ご回答をありがとうございました。

私が作ったコードでは
(2)でご指摘いただいた通り、Exit Forをしていませんでした。

修正して、動作確認できました。
本当にありがとうございました。これからどんどん勉強していきたいと
思います。
投稿日時 - 2001-03-22 13:07:32


  • 回答No.1
レベル5

ベストアンサー率 40% (2/5)

配列をどのように使おうとされたのでしょうか? どこでどう使っているかによってアドバイスが変わってきますので、お願いします。 たとえば、不明だと思われる点ですが、「テキストの入力チェックのタイミング」です。どのタイミングでチェックしたいのでしょうか? コマンドボタンを押したときでしょうか? テキストボックスからフォーカスが移動した瞬間でしょうか? 補足をお願いいたします。
配列をどのように使おうとされたのでしょうか? どこでどう使っているかによってアドバイスが変わってきますので、お願いします。
たとえば、不明だと思われる点ですが、「テキストの入力チェックのタイミング」です。どのタイミングでチェックしたいのでしょうか? コマンドボタンを押したときでしょうか? テキストボックスからフォーカスが移動した瞬間でしょうか?
補足をお願いいたします。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ