【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로 설정하여 소스 코드를 완료합니다.
그럼, 다음은 버튼을 만들어 갑시다.
버튼의 위치는 개발 탭 → 삽입 → 버튼(폼 컨트롤)입니다.
버튼을 선택하고 적절한 셀을 클릭하면 작성한 매크로 목록이 열리므로 방금 만든 매크로를 할당하십시오.
버튼을 설치한 후 오른쪽 클릭에서 텍스트 편집을 선택하고 이름을 변경합니다.
버튼의 크기를 변경하고 원하는 위치로 이동하면 스톱워치의 완성입니다.
그리고는, 좋아하는 태스크명을 써 사용해 주세요.
이상이 스톱워치를 만드는 방법이었습니다.
Reference
이 문제에 관하여(【VBA】 스톱워치 만드는 법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/RuruVba/items/9f2d57df4432b0676832텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)