■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#22263-0FOR文での処理utumi2001-08-08(水) 00:15
     #22265-0RE#22263:FOR文での処理匿名222652001-08-08(水) 02:16
     #22351-0RE#22265:FOR文での処理匿名223512001-08-10(金) 00:33
#22263-0
FOR文での処理
こんなソースを書きました。フォームには32個のコンボボックスがあり、
名前はcboTypeとしています。それぞれのコンボボックスにはデフォルトで
"OFF"が表示されています。処理2のところでコンボボックスのどれか一つが
「ON」の選択をされた場合、それ以上「ON」の設定をさせないようにしたい
のですが、一つだけ「ON」を許すようにするにはiの変数をどう設定すればよいの
でしょうか?


'処理1色分け
Private Sub cboType_Click(Index As Integer)
    Dim i As Long
    For i = 0 To 31
      If cboType(i).Text = "ON" Then
         cboType(i).ForeColor = RGB(255, 0, 0)
      ElseIf cboType(i).Text = "OFF" Then
         cboType(i).ForeColor = vbBlack
      End If
    Next i

'処理2「ON」は一つしか許さない    
    For i = 0 To 31
      If cboType(?).Text = "ON" Then
         MsgBox "2つ以上「ON」設定にすることは出来ません"
      End If
    Next i
  Exit Sub
End Sub

当然ですが上のままだと一つ選択しただけでメッセージが表示されます。
For i = 0 to 1
cboType(i + 30)
とかいろいろしてみたのですが、ちょっと良くわかりません・・・。 
よろしくお願いします。
#22265-0
RE#22263:FOR文での処理
> こんなソースを書きました。フォームには32個のコンボボックスがあり、
> 名前はcboTypeとしています。それぞれのコンボボックスにはデフォルトで
> "OFF"が表示されています。処理2のところでコンボボックスのどれか一つが
> 「ON」の選択をされた場合、それ以上「ON」の設定をさせないようにしたい
> のですが、一つだけ「ON」を許すようにするにはiの変数をどう設定すればよいの
> でしょうか?

iだけじゃなく、もうひとつ変数を用意し、それでONがいくつあるか数え、2以上だと
メッセージを出すようにするとか。

'処理2「ON」は一つしか許さない    
    Dim iCount As Integer

    iCount = 0
    For i = 0 To 31
      If cboType(i).Text = "ON" Then
         iCount = iCount + 1
         If iCount > 1 Then
             MsgBox "2つ以上「ON」設定にすることは出来ません"
             cboType(i).Text = "OFF"
         End If
      End If
    Next i
  Exit Sub
End Sub
#22351-0
RE#22265:FOR文での処理
> iだけじゃなく、もうひとつ変数を用意し、それでONがいくつあるか数え、2以上だと
> メッセージを出すようにするとか。
> 
> '処理2「ON」は一つしか許さない    
>     Dim iCount As Integer
> 
>     iCount = 0
>     For i = 0 To 31
>       If cboType(i).Text = "ON" Then
>          iCount = iCount + 1
>          If iCount > 1 Then
>              MsgBox "2つ以上「ON」設定にすることは出来ません"
>              cboType(i).Text = "OFF"
>          End If
>       End If
>     Next i
>   Exit Sub
> End Sub

お礼が遅くなって済みませんでした。参考にさせていただきうまく動きました。
ありがとうございました。
このページと関連する記事:
#25204-0配列について2001-12-08(土) 16:37
#7922-0実行について2000-05-04(木) 20:01
#22987-0For文について2001-09-06(木) 13:47
#3552-0TextBoxのイベント共通化1999-08-20(金) 12:03
#20921-0ファイル操作の基礎(~_~;)2002-05-24(金) 13:38
#574-1桁数の読み方を教えて下さい2002-08-30(金) 04:36
#28180-0超初心者です 教えてください T△T2002-04-11(木) 20:23
#422-2配列のロックエラーメッセージ2001-10-24(水) 01:51
#39893-0フォームを開くときに変数を使う2001-03-06(火) 17:22
#37341-0DoLoopの中で…2001-01-19(金) 16:55
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)