비주얼베이직 해석 가능하신가요

kutest의 이미지


스위치가 열리면 이벤트가 발생시키는 코드를 베이직6.0으로 만들어보려고 했습니다
아래와 같이 만들었습니다

dim switch1 As Integer
 
 
Private Sub Command1_Click()
switch1 = 1
Call switchon
End Sub
 
 
Private Function switchon()
If (switch1 = 1) Then
    sleep 3000
    MsgBox "스위치 켜짐"
    switch1 = 0
End If
End Function

그런데 문제가 발생한게 있습니다

Private Sub Command1_Click()
이벤트1
스위치1 = 1
이벤트2
End Sub

이런식으로 되어있어서 스위치가 켜지면서
스위치1의 이벤트가 발생하고 동시에 이벤트2가 발생됩니다
그래서 누군가가 전체적으로 논리가 맞지 않다면서 코드를 새로 짜주었는데 아래입니다 사실 타이머가 꼭 필요한지도 궁금하고 없으면 좋겠지만해석도 궁금하네요 또 아래보다 좋은 방법 있을까요

Dim WithEvents TM As Timer
Dim CK As Boolean
 
Private Sub Command1_Click()
 
    If TM Is Nothing Then Set TM = Controls.Add("vb.Timer", "TM"): TM.Interval = 1500
 
    CK = Not CK
 
    Command1.Caption = Choose(CK + 2, "스위치 ON", "스위치 Off")
 
    TM.Enabled = True
 
End Sub
 
 
Private Sub TM_Timer()
 
    TM.Enabled = False
 
    If CK Then
 
        MsgBox "스위치 ON"
 
    Else
 
        MsgBox "스위치 Off"
 
    End If
 
End Sub

joone의 이미지

sleep 필요가 없습니다. 그런데, switchon function에서
switch1 = 0
할 필요가 있나요?