プログラムの組み方について質問です。
案①と案②どちらのほうがよいでしょうか?
よろしくお願いいたします。
案①
Private Sub H_Up_Click()
Timer_Start
If (Setting < 5) Then
msgbox "aa"
End If
End Sub
Private Sub S_Up_Click()
Timer_Start
If (Setting < 5) Then
msgbox "bb"
End If
End Sub
Private Sub I_Up_Click()
Timer_Start
If (Setting < 5) Then
msgbox "cc"
End If
End Sub
Private Sub Timer_Start()
If (Timer1.Enabled = False) Then
Timer1.Enabled = True
End If
End Sub
案②
Dim Setting as Textbox
Private Sub H_Up_Click()
Set Setting = High
One_Up
End Sub
Private Sub S_Up_Click()
Set Setting = Speed
One_Up
End Sub
Private Sub I_Up_Click()
Set Setting = Interval
One_Up
End Sub
Private Sub One_Up()
Timer_Start
If (Setting < 5) Then
Select Case(Setting)
case High
msgbox "aa"
case Speed
msgbox "bb"
case Interval
msgbox "cc"
End Select
End If
End Sub
Private Sub Timer_Start()
If (Timer1.Enabled = False) Then
Timer1.Enabled = True
End If
End Sub
案①間違えてました。正しくはこちらです。
案①
Private Sub H_Up_Click()
If (High.text < 5) Then
Timer_Start
msgbox "aa"
End If
End Sub
Private Sub S_Up_Click()
If (Speed.text < 5) Then
Timer_Start
msgbox "bb"
End If
End Sub
Private Sub I_Up_Click()
Timer_Start
If (Interval.text < 5) Then
Timer_Start
msgbox "cc"
End If
End Sub
Private Sub Timer_Start()
If (Timer1.Enabled = False) Then
Timer1.Enabled = True
End If
End Sub
ケースバイケースのような気がします。
もし、すべての条件が、変更するとしても10未満と常に同じになるならば、
メンテナンスの面からいって案(2)がいいだろうし、また、条件が、Highが
10未満で、Speedは8以下という風に、個別に変更になる可能性があるなら、
案(1)の方がいいですね。
テキストボックスとコマンドボタンを配列にしておけば、
Private Sub Command1_Click(Index As Integer)
Dim d() As String
d = Split("Height,Speed,Interval", ",")
If Val(Text1(Index).Text) < 5 Then
MsgBox d(Index) & "エラー"
End If
End Sub
これだけで済む気もするが。(Timerは省略)
配列にしたらプログラムがとても短くなりました!
ありがとうございました。
ツイート | ![]() |