[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『For next を使ってTextbox と CheckBox連動』(Mike D)
Textboxが9から16まであります。
Checkboxが1から4まであります。
Textboxが空白又は空白ではないときのCheckBoxを連動させたいです。
条件は
TextBox9が空白ならCheckBox1はFalse
TextBox10が空白ならCheckBox2はFalse
TextBox9が空白でないならCheckBox2はFalse
TextBox10が空白ならCheckBox1はTrue
TextBox9が空白ならCheckBox1はFalse
TextBox10が空白でないならCheckBox2はTrue
TextBox9が空白でないならCheckBox1はFalse
TextBox10が空白でないならCheckBox2はTrue
・
・
・
というふうにしたいです。
c = 1
For j = 9 To 16
If Me.Controls("textbox" & j).Value = "" And Me.Controls("textbox"& j + 1).Value <> "" Then Me.Controls("checkbox" & c) = False
ElseIf Me.Controls("textbox" & j).Value <> "" And Me.Controls("textbox" & j + 1).Value = "" Then Me.Controls("checkbox" & c) = True c = c + 1 End If
Next といったふうにFor Nextを勉強中なのですがうまくいきません。何が違うのでしょうか?
< 使用 Excel:Office365、使用 OS:Windows10 >
Dim t1 As Long, t2 As Long Dim c1 As Long, c2 As Long c1 = 1 For t1 = 9 To 12 Step 2 t2 = t1 + 1 c2 = c1 + 1 If Me.Controls("Textbox" & t1).Value = "" And _ Me.Controls("Textbox" & t2).Value = "" Then Me.Controls("Checkbox" & c1) = False Me.Controls("Checkbox" & c2) = False End If If Me.Controls("Textbox" & t1).Value <> "" And _ Me.Controls("Textbox" & t2).Value = "" Then Me.Controls("Checkbox" & c2) = False Me.Controls("Checkbox" & c1) = True End If If Me.Controls("Textbox" & t1).Value = "" And _ Me.Controls("Textbox" & t2).Value <> "" Then Me.Controls("Checkbox" & c1) = False Me.Controls("Checkbox" & c2) = True End If If Me.Controls("Textbox" & t1).Value <> "" And _ Me.Controls("Textbox" & t2).Value <> "" Then Me.Controls("Checkbox" & c1) = False Me.Controls("Checkbox" & c2) = True End If c1 = c1 + 2 Next t1
Textbox と Checkbox の相対関係が不明なので、 TB11とTB12 に CB3とCB4 としたところで終わり。 (:-) 2021/09/13(月) 00:44
Dim buf1 As Boolean Dim buf2 As Boolean Dim tmp As Boolean
Dim c As Long Dim i As Long Dim j As Long
For i = 0 To 3 c = i + 1 '1,2,3,4 j = i * 2 + 1 '1,3,5,7 buf1 = (Me.Controls("Textbox" & j + 8).Value = "") '9,11,13,15が空白でTrue buf2 = (Me.Controls("Textbox" & j + 9).Value = "") '10,12,14,16が空白でTrue Select Case True Case buf1 And buf2 'True-True GoTo Continue 'True-Trueの値は未定義のためスキップ Case buf1 'True-False tmp = False Case buf2 'False-True tmp = True Case Else 'False-False GoTo Continue 'False-Falseの値は未定義のためスキップ End Select Me.Controls("Checkbox" & c).Value = tmp '1,2,3,4 Continue: Next i
ステップ実行で動作確認してみてください。
(めざめるパワー) 2021/09/13(月) 02:05
ご提示いただいたものでCheckbox8個のものを勉強したいと思います。
(Mike D) 2021/09/13(月) 10:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.