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

VBA 코드를 활용한 엑셀 파일 자동 저장 및 백업 방법

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

VBA 코드를 활용한 엑셀 파일 자동 저장 및 백업 방법

컴퓨터를 사용하다보면, 작업 중인 파일이 갑자기 사라져서 복구할 수 없는 상황이 발생할 때가 있습니다. 이러한 경우를 방지하기 위해서는 파일을 주기적으로 백업하는 것이 좋습니다. 특히, 엑셀 파일의 경우 많은 양의 데이터를 가지고 있기 때문에 데이터를 잃을 경우 큰 문제가 발생할 수 있습니다.

이번 포스팅에서는 VBA 코드를 사용하여 엑셀 파일을 자동으로 저장하고 백업하는 방법에 대해 알아보겠습니다.

 

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

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

portalmaker.backtohome.kr

1. VBA 코드를 추가하는 방법

첫째로, VBA 코드를 추가하는 방법에 대해 살펴보겠습니다. 엑셀 파일 내에서 VBA 코드를 작성하려면, 엑셀의 개발 도구 탭을 활성화해야 합니다. 개발 도구 탭을 활성화하려면 엑셀 파일을 열고, 파일 탭에서 옵션을 선택한 후, 리본 탭 사용자 지정 옵션을 선택한 다음, 개발 도구를 선택합니다.

 

그리고 나서, 개발 도구 탭을 클릭하면, VBA 코드를 작성할 수 있는 Visual Basic 창이 열립니다.


2. VBA 코드를 작성하는 방법

다음으로, VBA 코드를 작성하는 방법에 대해 살펴보겠습니다. 엑셀 파일에서 VBA 코드를 작성할 때는, ThisWorkbook 객체의 코드를 사용합니다. ThisWorkbook 객체는 현재 열려 있는 엑셀 파일에 대한 정보를 담고 있는 객체입니다.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ' Create backup file
    Call BackupFile
End Sub

Private Sub BackupFile()
    ' Set backup file name
    Dim BackupFileName As String
    BackupFileName = ThisWorkbook.Path & "\" & "Backup_" & ThisWorkbook.Name & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".xlsx"
    
    ' Create backup file
    ThisWorkbook.SaveCopyAs BackupFileName
End Sub

위의 코드를 분석해보면, Workbook_BeforeSave 이벤트가 발생했을 때, BackupFile 서브루틴이 실행됩니다. BackupFile 서브루틴에서는, 백업 파일 이름을 설정하고, 현재 파일을 백업 파일로 저장합니다.

백업 파일 이름은 다음과 같이 설정됩니다. - 백업 파일 경로 & 백업 파일 이름 & 현재 시간 & .xlsx


3. VBA 코드를 적용하는 방법

마지막으로, 작성한 VBA 코드를 엑셀 파일에 적용하는 방법에 대해 살펴보겠습니다.

먼저, 엑셀 파일을 열고, 개발 도구 탭을 활성화합니다. 그리고 나서, Visual Basic 창을 엽니다.

Visual Basic 창에서, ThisWorkbook 객체를 선택하고, Workbook 객체의 BeforeSave 이벤트를 선택합니다. 그리고 이벤트 핸들러 코드를 작성합니다. 코드를 작성한 후, 저장합니다.

 

이제, 엑셀 파일을 저장할 때마다, 백업 파일이 자동으로 생성됩니다.


4. 정리

이번 포스팅에서는, VBA 코드를 사용하여 엑셀 파일을 자동으로 저장하고 백업하는 방법에 대해 알아보았습니다. 파일을 주기적으로 백업하면, 파일을 잃어버릴 우려를 줄일 수 있습니다. 또한, VBA 코드를 작성하는 과정에서, 엑셀 파일 내에서 코드를 작성하고, 작성한 코드를 적용하는 방법에 대해 배웠습니다. 엑셀을 활용하는 사용자라면, VBA 코드를 적용하여 업무 효율성을 높일 수 있습니다.



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

행복한 하루 되세요!