엑셀 VBA로 작업 시간 계산 자동화하기
회사에서 근무하다보면, 작업 시간을 계산해야 하는 일이 많습니다. 인적 자원팀에서는 근태 관리를 위해 근무 시간을 기록하고, 부서별로 작업 시간을 산정해야 할 경우도 있습니다. 이러한 작업을 수작업으로 하다보면 시간이 많이 소요되고, 인간적인 실수도 발생할 수 있습니다. 이때 VBA를 이용하면 작업 시간 계산을 자동화 시킬 수 있습니다.
이번 글에서는 VBA를 이용해 엑셀에서 작업 시간을 자동으로 계산하는 방법에 대해 알아보겠습니다.
1. VBA를 이용한 작업 시간 계산 방법
VBA를 이용한 작업 시간 계산은 크게 두 가지로 나눌 수 있습니다. 첫번째는 매크로(Macro)를 이용한 방법이고, 두번째는 함수(Function)를 이용한 방법입니다. 먼저 매크로를 이용한 방법을 알아보겠습니다.
2. 매크로를 이용한 방법
매크로를 이용하는 방법은, 시트에 명령을 녹화하고, 이를 버튼으로 실행할 수 있도록 하는 방법입니다. 이 방법은 초보자가 쉽게 접근할 수 있으므로, 가장 많이 사용되는 방법 중 하나입니다.
먼저, 작업 시간을 계산할 열에 시작 시간과 종료 시간을 각각 입력합니다. 그리고, 매크로를 녹화할 준비를 합니다. 매크로를 녹화하고 버튼으로 실행할 때, 선택된 셀을 기준으로 위/아래 셀을 차례로 비교하여 작업 시간을 계산하는 코드를 작성해 주어야 합니다.
Sub Calculate_WorkingTime()
Dim StartTime As Date
Dim EndTime As Date
Dim WorkingTime As Date
StartTime = Selection.Value
EndTime = Selection.Offset(1, 0).Value
WorkingTime = EndTime - StartTime
Selection.Offset(0, 3).Value = WorkingTime
End Sub
위 코드를 매크로로 녹화한 후, 원하는 위치에 버튼을 생성하고, 클릭하여 작업 시간을 계산해 주면 됩니다.
이 방법은 간단하고 쉽게 작업 시간을 계산할 수 있습니다. 하지만 수작업으로 버튼을 생성해야하고, 매크로를 녹화할 때 선택된 셀을 기준으로 차례로 비교하여야 하기 때문에 작업 시간 계산을 되돌릴 수 없는 문제점이 있습니다.
3. 함수를 이용한 방법
매크로 방법에서의 단점을 보완하기 위해서 함수를 이용한 방법이 있습니다. 이 방법은 매크로와 달리 코딩을 통해 작업 시간을 계산하는 함수를 만들어 사용합니다.
Function GetWorkingTime(StartTime As Date, EndTime As Date) As Date
GetWorkingTime = EndTime - StartTime
End Function
위와 같이 작성한 함수를 열에 입력하고, 시작 시간과 종료 시간을 입력하면 계산된 작업 시간이 자동으로 출력됩니다.
이 방법은 매크로 방법에서의 단점인 수정이 가능하다는 장점이 있습니다. 하지만 함수를 이용해야 하기 때문에 초보자에겐 어려울 수 있습니다.
4. VBA를 이용해 작업 시간 계산 자동화 방법 정리
- 시트에 작업 시작 시간과 종료 시간을 입력 후, 매크로 또는 함수를 이용해 작업 시간을 자동으로 계산합니다.
- 매크로를 이용하면 쉽고 간편하게 계산할 수 있지만, 버튼 생성과 매크로 녹화시 선택된 셀을 기준으로 비교하기 때문에 수정이 어렵습니다.
- 함수를 이용하면 수정이 가능하지만, 코딩을 해야 하므로 초보자에겐 어려울 수 있습니다.
5. 마치며
VBA를 이용해 작업 시간 계산을 자동화할 수 있다는 것을 알았습니다. 작업 시간을 계산하는 데에는 여러 가지 방법이 있지만, 그 중 매크로와 함수를 이용한 방법을 알아보았습니다. 각 방법마다 장단점이 있으므로, 자신에게 적합한 방법을 선택해서 사용하시면 됩니다.
포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!
행복한 하루 되세요!
'■ 칼퇴를 위한 VBA : 사례 > - VBA for 엑셀' 카테고리의 다른 글
엑셀 VBA를 사용하여 워크시트 숨기기 및 표시하기 방법 (0) | 2023.06.24 |
---|---|
VBA를 활용한 엑셀 데이터 변환 방법 (0) | 2023.06.24 |
VBA 코드를 활용한 엑셀 매크로 만들기 (0) | 2023.06.24 |
엑셀 VBA를 이용한 데이터 복사 및 붙여넣기 방법 (0) | 2023.06.24 |
VBA 스크립트를 활용한 엑셀 워크시트 보호 방법 (0) | 2023.06.24 |