본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 엑셀

엑셀 VBA로 작업 일정 계산 자동화하기

by 포탈메이커 2023. 6. 27.

엑셀 VBA로 작업 일정 계산 자동화하기

작업 일정을 계산하는 것은 복잡하고 시간이 많이 소요될 수 있습니다. 특히, 수동으로 계산할 경우 실수가 발생할 가능성도 높습니다. 

이러한 문제를 해결하기 위해 엑셀 VBA를 사용하여 작업 일정 계산을 자동화하는 방법을 소개하겠습니다.

 

칼퇴키트, 업무용 도구모음

칼퇴를 위해 꼭 필요한 도구 모음을 제공합니다. 당장의 업무에 필요한 순간 사용하는 가벼운 메모장, 계산기, 변환기 등

portalmaker.backtohome.kr

 

1. 엑셀 VBA란?


VBA(Visual Basic for Applications)는 마이크로소프트 오피스 프로그램에서 사용되는 프로그래밍 언어로, 엑셀 기능을 확장하거나 자동화할 수 있습니다. VBA를 활용하면 매크로를 만들어 반복적인 작업을 자동으로 처리할 수 있습니다.


2. 작업 일정 계산 자동화하기

엑셀 VBA를 이용하여 작업 일정을 계산하는 방법은 비교적 간단합니다. 기본적인 일정 계산에는 작업 시작일과 종료일을 입력한 후, 이 날짜들을 기준으로 작업 일수를 계산하는 것이 포함됩니다. 다음은 작업 일정을 계산하는 간단한 VBA 코드 예시입니다.

Sub CalculateSchedule()
    Dim startDate As Date
    Dim endDate As Date
    Dim workingDays As Integer
    Dim remainingDays As Integer
    
    ' 워크시트에서 시작일과 종료일 가져오기
    startDate = Range("B2").Value
    endDate = Range("B3").Value
    
    ' 시작일과 종료일 사이의 영업일 수 계산
    workingDays = Application.WorksheetFunction.NetworkDays(startDate, endDate)
    
    ' 종료일까지 남은 일수 계산
    remainingDays = DateDiff("d", Now, endDate)
    
    ' 계산된 값으로 워크시트 업데이트
    Range("B4").Value = workingDays
    Range("B5").Value = remainingDays
End Sub

3. 코드 설명

- 변수 선언:

  - `startDate`와 `endDate`는 작업의 시작일과 종료일을 저장하는 변수입니다.
  - `workingDays`는 시작일과 종료일 사이의 영업일 수를 계산한 결과를 저장합니다.
  - `remainingDays`는 오늘부터 종료일까지 남은 일수를 계산합니다.

- 데이터 가져오기:

  - `Range("B2").Value`와 `Range("B3").Value`를 통해 시작일과 종료일을 엑셀 워크시트에서 가져옵니다.

- 영업일 계산:

  - `NetworkDays` 함수는 지정된 시작일과 종료일 사이의 영업일 수를 계산합니다. 이 함수는 주말과 설정된 휴일을 제외하고 계산합니다.

- 남은 일수 계산:

  - `DateDiff` 함수는 오늘 날짜와 종료일 사이의 남은 일수를 계산합니다.

- 결과 반영:

  - 계산된 영업일 수와 남은 일수를 각각 `Range("B4")`와 `Range("B5")`에 반영하여 워크시트에 표시합니다.


4. 마치며

위 코드를 실행하면 엑셀에서 작업 일정 계산이 자동화됩니다. 작업 시작일과 종료일을 입력하기만 하면, 엑셀은 자동으로 영업일 수와 남은 일수를 계산하여 워크시트에 반영해줍니다. 이를 통해 계산 작업의 번거로움을 줄이고, 작업 일정을 더 효율적으로 관리할 수 있습니다. 

VBA를 활용하여 복잡한 작업을 자동화하면, 시간이 절약되고 오류 가능성을 줄일 수 있으며, 일관된 작업 처리가 가능합니다. 이 방법을 사용하여 더욱 효율적인 엑셀 사용을 경험해 보세요.



포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!

행복한 하루 되세요!