【VBA】 스톱워치 만드는 법

이번에는 스톱워치를 만드는 방법입니다.

아래 동영상과 같은 스톱워치를 만들었습니다.
태스크의 시간 계측용으로 만든 것이므로, 만약 좋으면 참고로 해 주세요.

↓실연 동영상
htps: //같다. 베 / 7 리 7 디 Y

소스 코드는 아래와 같습니다.
Private blnStop As Boolean
Private blnStart As Boolean

Sub StopWatch1()
    Dim dblTimer As Double
    Dim objWbk As Workbook                                          
    Set objWbk = ThisWorkbook

    If blnStart = True Then
        blnStop = True
        Exit Sub
    End If

    blnStart = True
    blnStop = False
    dblTimer = timer

    Do Until blnStop = True
    dblLapse = (timer - dblTimer) + objWbk.Worksheets("Sheet1").Cells(2, 1)
        ' "時間"を求める
        intHour = Int(dblLapse / 3600)

        ' "分"を求める
        intMinute = Int((dblLapse Mod 3600) / 60)

        ' "秒"を求める
        dblSecond = ((dblLapse * 100) Mod 6000) / 100
        objWbk.Worksheets("Sheet1").Cells(2, 3) = intHour & "時間" & intMinute & "分" & dblSecond & "秒"
        DoEvents
    Loop

    objWbk.Worksheets("Sheet1").Cells(2, 1) = dblLapse
    blnStart = False
End Sub

자세한 내용을 설명합니다.

Private blnStop As Boolean
Private blnStart As Boolean

우선, 정지와 스타트를 식별하기 위한 플래그를 준비합니다.

Dim dblTimer As Double
Dim objWbk As 워크북
Set objWbk = ThisWorkbook

그런 다음 위의 변수를 준비합니다.
objWbk는 스톱워치를 움직이는 엑셀 파일을 지정하기 위해 준비합니다.
그렇지 않으면 다른 엑셀 시트에서 작업하는 경우 다른 엑셀 시트에 기록됩니다.
If blnStart = True Then
        blnStop = True
        Exit Sub
End If

위의 코드에서 스톱워치가 움직이면 정지하고 처리를 종료하도록 합니다.

blnStart = True
blnStop = False

움직이지 않으면 시작 플래그를 True로, 정지 플래그를 False로 설정합니다.

dblTimer = 타이머

위에서 dblTimer에 현재 시간(초)을 할당합니다.

타이머 함수에 대해서는 아래 사이트를 참조하십시오.
htps //w w. 치 ps 후응 d. 코 m / v 바 / 05 Chime r
Do Until blnStop = True
     dblLapse = (timer - dblTimer) + objWbk.Worksheets("Sheet1").Cells(2, 1)
     ' "時間"を求める
     intHour = Int(dblLapse / 3600)

     ' "分"を求める
     intMinute = Int((dblLapse Mod 3600) / 60)

     ' "秒"を求める
     dblSecond = ((dblLapse * 100) Mod 6000) / 100
     objWbk.Worksheets("Sheet1").Cells(2, 3) = intHour & "時間" & intMinute & "分" & dblSecond & "秒"
     DoEvents
Loop

위에서 시간을 찾습니다.
Do Until에서는 조건식에 1
그렇지 않은 경우, 처리를 실행합니다.
이번에는 'blnStop=True'가 아닌 경우 시간을 구합니다.

dblLapse = (timer - dblTimer) + objWbk.Worksheets("Sheet1").Cells(2, 1)

우선, dblLapse에 현재 시간과 초기치의 시간의 차이로부터, 경과 시간을 구합니다.
뒤의 + 이후로, 「정지 시간의 유지」의 셀에 저장된 시간을 더함으로써, 정지했을 때의 시간으로부터 스타트하는 것이 가능합니다.

intHour = Int(dblLapse/3600)
intMinute = Int((dblLapse Mod 3600)/60)
dblSecond = ((dblLapse * 100) Mod 6000)/100

위에서 각각 시간, 분, 초를 찾아 변수에 대입합니다.

objWbk.Worksheets("Sheet1").Cells(2, 3) = intHour & "시간"& intMinute & "분"& dblSecond & "초"

결과를 "근무 시간"의 셀에 내보내려고합니다.

objWbk.Worksheets("Sheet1").Cells(2, 1) = dblLapse

루프를 빠져 나갈 때 "정지 시간 유지"셀에 최종 초 수를 저장합니다.

blnStart = False

마지막으로 시작 플래그를 False로 설정하여 소스 코드를 완료합니다.

그럼, 다음은 버튼을 만들어 갑시다.

버튼의 위치는 개발 탭 → 삽입 → 버튼(폼 컨트롤)입니다.



버튼을 선택하고 적절한 셀을 클릭하면 작성한 매크로 목록이 열리므로 방금 만든 매크로를 할당하십시오.



버튼을 설치한 후 오른쪽 클릭에서 텍스트 편집을 선택하고 이름을 변경합니다.



버튼의 크기를 변경하고 원하는 위치로 이동하면 스톱워치의 완성입니다.



그리고는, 좋아하는 태스크명을 써 사용해 주세요.

이상이 스톱워치를 만드는 방법이었습니다.

좋은 웹페이지 즐겨찾기