|
昨日投稿する前に、頭の中で if○○ then で分けられればと考えていたのですが最後まで思いつきませんでした。
そこで、投稿させていただきました。
Jakaさんから、「flg」のヒントをえて
過去ログを検索して、 【49591】Re:チェックボックスの選択 Jakaさん と 【49872】Re:シート別のマクロの動かし方 勝子さん のログを探しました。
お二人を参考にして、何とか満足のいくベースのものは出来ました。
If flg = True Then
flg = False ← ここが、思い浮かばなかった・・・・。
Exit Sub
End If
始めに、下の物を作りました。
Public flg As Boolean
Private Sub ComboBox1_Change()
If flg = True Then
flg = False
Exit Sub
End If
flg = True
ComboBox1.Value = "1"
flg = True
ComboBox2.Value = "1"
flg = True
ComboBox3.Value = "1"
flg = False
End Sub
Private Sub ComboBox2_Change()
If flg = True Then
flg = False
Exit Sub
End If
flg = True
ComboBox1.Value = "2"
flg = True
ComboBox2.Value = "2"
flg = True
ComboBox3.Value = "2"
flg = False
End Sub
Private Sub ComboBox3_Change()
If flg = True Then
flg = False
Exit Sub
End If
flg = True
ComboBox1.Value = "3"
flg = True
ComboBox2.Value = "3"
flg = True
ComboBox3.Value = "3"
flg = False
End Sub
Private Sub UserForm_Initialize()
flg = True
ComboBox1.Value = "1"
flg = True
ComboBox2.Value = "2"
flg = True
ComboBox3.Value = "3"
flg = False
End Sub
そして、下の物に直しました。
Public flg As Boolean
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 3
flg = True
With UserForm3
.Controls("ComboBox" & i).Value = i
End With
Next
flg = False
End Sub
Private Sub ComboBox1_Change()
Call tiyusi(1)
End Sub
Private Sub ComboBox2_Change()
Call tiyusi(2)
End Sub
Private Sub ComboBox3_Change()
Call tiyusi(3)
End Sub
Sub tiyusi(bangou)
Dim i As Integer
If flg = True Then
flg = False
Exit Sub
End If
For i = 1 To 3
flg = True
With UserForm3
.Controls("ComboBox" & i).Value = bangou
End With
Next
flg = False
End Sub
どちらも、同じ結果になりました。
今後、Classを使っての改良が時間があればやってみたいと思います。
Jakaさん、ありがとうございました。
また、何かございましたらよろしくお願いいたします。
|
|