Page 464 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼沢山のチェックボックスを一斉にFalse 123 02/12/13(金) 13:15 ┗Re:沢山のチェックボックスを一斉にFalse つん 02/12/13(金) 14:20 ┣ついでに もうふたつお願いします 123 02/12/16(月) 14:30 ┗一部訂正 123 02/12/16(月) 17:45 ┗Re:一部訂正 つん 02/12/16(月) 18:29 ┗Re:一部訂正 123 02/12/17(火) 11:06 ─────────────────────────────────────── ■題名 : 沢山のチェックボックスを一斉にFalse ■名前 : 123 ■日付 : 02/12/13(金) 13:15 -------------------------------------------------------------------------
みなさん こんにちは。123です。 今度は、チェックボックスについて教えてください。 チェックボックスが30個 ユーザーフォーム上にあります。 コマンドボタンをClickすると、全部Falseになるようにしたいのですが、 CheckBox1.Value = False というコードを30こ分記述するのではなく、 一発でできる方法はあるでしょうか? ちなみに、ChekBoxの名前はそれぞれいろんな項目の名前になっています。 グループは全部同じグループにすることは可能です。 宜しくお願いします。 |
123 さん、こんにちは >チェックボックスが30個 ユーザーフォーム上にあります。 >コマンドボタンをClickすると、全部Falseになるようにしたいのですが、 >CheckBox1.Value = False というコードを30こ分記述するのではなく、 >一発でできる方法はあるでしょうか? >ちなみに、ChekBoxの名前はそれぞれいろんな項目の名前になっています。 >グループは全部同じグループにすることは可能です。 同じグループっちゅーことは、フレームで囲むっちゅーことですよね? これでどうですか? Private Sub CommandButton1_Click() Dim i As Long With Frame1 For i = 0 To .Controls.Count - 1 If TypeName(.Controls(i)) = "CheckBox" Then .Controls(i).Value = False End If Next i End With End Sub ふれで、「Frame1」内のチェックボックスが全部Falseになります。 試してみてにゃ |
▼つん さん: こんにちは いつもありがとうございます。 TypeNameを使うんですね。やっと理解できるようになってきました。 でも なんで iを「1 To .Controls.Count」にせずに 「0」から始めるんですか? それと 全部「False」にするんですが、CheckBox10とCheckBox11だけは Trueにする といった場合はどうすればよいのでしょうか? 何度もすみませんが宜しくお願いします。 >Private Sub CommandButton1_Click() > > Dim i As Long > > With Frame1 > For i = 0 To .Controls.Count - 1 > If TypeName(.Controls(i)) = "CheckBox" Then > .Controls(i).Value = False > End If > Next i > End With > >End Sub |
▼つん さん: こんにちは いつもありがとうございます。 TypeNameを使うんですね。やっと理解できるようになってきました。 でも なんで iを「1 To .Controls.Count」にせずに 「0」から始めるんですか? それと 全部「False」にするんですが、CheckBox10とCheckBox11だけは除く といった場合はどうすればよいのでしょうか? 何度もすみませんが宜しくお願いします。 >Private Sub CommandButton1_Click() > > Dim i As Long > > With Frame1 > For i = 0 To .Controls.Count - 1 > If TypeName(.Controls(i)) = "CheckBox" Then > .Controls(i).Value = False > End If > Next i > End With > >End Sub |
123さん、こんばんは >でも なんで iを「1 To .Controls.Count」にせずに >「0」から始めるんですか? 初期値が「0」やからです。 言葉を知らなくて上手く言えないですが、配列が特に指定しないと、インデックスの最小値が「0」になるみたいに・・・ >それと 全部「False」にするんですが、CheckBox10とCheckBox11だけは除く >といった場合はどうすればよいのでしょうか? Frame1.Controls(i).Nameでコントロールの名前が取得できるので、 それで判断してIf文で分岐させたらいいと思います。 ちと忙しいので雑な回答ですんませんm(__)m |
▼つん さん: ありがとうございます。 For NextでのIf文って、一回毎にIfを通るんですね。 すっごく 勉強になりました。 >Frame1.Controls(i).Nameでコントロールの名前が取得できるので、 >それで判断してIf文で分岐させたらいいと思います。 > >ちと忙しいので雑な回答ですんませんm(__)m お忙しい中、ありがとうございました。 充分なご回答でした。 |