본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA 통합

VBA를 활용한 업무 관련 파일 시스템 자동화

by 포탈메이커 2023. 7. 28.

VBA를 활용한 업무 관련 파일 시스템 자동화

이전에는 많은 업무 과정들을 수동으로 수행해야 했으나, VBA (Visual Basic for Applications)를 활용하면 업무 관련 파일 시스템을 간단하고 효율적으로 자동화할 수 있다. VBA는 Microsoft Office 제품군에 내장된 프로그래밍 언어로, Excel, Word, PowerPoint 등과 같은 소프트웨어들에서 사용될 수 있다. 이번 포스팅에서는 VBA를 사용하여 파일 시스템을 자동화하는 방법에 대해 알아보겠다.

1. 파일 생성과 저장

VBA를 이용하면 파일을 생성하고 저장하는 과정을 자동화할 수 있다. 예를 들어, 매일 업무에서 사용되는 리포트 파일을 생성하여 특정 폴더에 저장해야 한다고 가정해보자. VBA를 사용하면 이 작업을 단 몇 번의 클릭으로 자동화할 수 있다.

Sub CreateAndSaveFile()
    Dim FilePath As String
    Dim FileName As String

    ' 생성할 파일의 경로와 이름 정의
    FilePath = "C:\Reports\"
    FileName = "DailyReport_" & Format(Date, "yyyy-mm-dd")

    ' 파일 생성
    Workbooks.Add

    ' 파일 저장
    ActiveWorkbook.SaveAs FilePath & FileName & ".xlsx"

    ' 파일 닫기
    ActiveWorkbook.Close
End Sub

위의 코드는 새로운 Excel 파일을 생성하고, 지정한 경로와 이름으로 저장하는 예시이다. VBA 코드를 실행하면, "C:\Reports\" 폴더에 "DailyReport_2021-01-01.xlsx"와 같은 파일이 생성되고 저장된다.

2. 파일 열기와 데이터 처리

VBA를 사용하면 파일을 자동으로 열고, 데이터를 읽거나 수정할 수 있다. 예를 들어, 업무에서 매일 받는 다량의 데이터를 처리해야 한다고 가정해보자. VBA를 사용하면 이러한 데이터를 자동으로 열고 원하는 작업을 수행할 수 있다.

Sub OpenAndProcessFile()
    Dim FilePath As String
    Dim FileName As String
    Dim wb As Workbook
    Dim ws As Worksheet

    ' 파일 경로와 이름 정의
    FilePath = "C:\Data\"
    FileName = "SalesData.xlsx"

    ' 파일 열기
    Set wb = Workbooks.Open(FilePath & FileName)
    Set ws = wb.Sheets("Sheet1")

    ' 데이터 처리
    ' ...

    ' 파일 저장
    wb.Save

    ' 파일 닫기
    wb.Close
End Sub

위의 코드는 지정한 경로의 "SalesData.xlsx" 파일을 열고, "Sheet1"에 있는 데이터를 처리한 뒤에 저장하는 예시이다. VBA 코드를 실행하면, 해당 파일이 열리고 원하는 작업을 수행한 뒤에 저장되고 닫힌다.

3. 파일 병합과 필터링

VBA를 사용하면 여러 파일을 자동으로 병합하거나, 특정 조건에 맞춰 파일을 필터링할 수 있다. 예를 들어, 매일 생성되는 여러 파일을 하나의 파일로 병합하여 그래프를 그려야 한다고 가정해보자. VBA를 사용하면 이러한 작업을 몇 번의 클릭으로 자동화할 수 있다.

Sub MergeAndFilterFiles()
    Dim SourcePath As String
    Dim TargetPath As String
    Dim TargetFileName As String
    Dim i As Integer
    Dim wb As Workbook
    Dim ws As Worksheet

    ' 원본 파일 경로 정의
    SourcePath = "C:\Data\"

    ' 병합된 파일 저장 경로와 이름 정의
    TargetPath = "C:\MergedData\"
    TargetFileName = "MergedData.xlsx"

    ' 병합된 파일 생성
    Set wb = Workbooks.Add
    Set ws = wb.Sheets("Sheet1")

    ' 원본 파일 병합
    i = 1
    While i <= 10 ' 예시를 위해 10개의 파일만 병합
        FileName = "Data_" & i & ".xlsx"
        Workbooks.Open SourcePath & FileName
        ActiveSheet.Range("A1:C10").Copy ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0)
        Workbooks(FileName).Close False
        i = i + 1
    Wend

    ' 데이터 필터링
    ws.Range("A1:C" & ws.Cells(ws.Rows.Count, 1).End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">1000"

    ' 병합된 파일 저장
    wb.SaveAs TargetPath & TargetFileName

    ' 병합된 파일 닫기
    wb.Close
End Sub

위의 코드는 "C:\Data\" 폴더에 있는 "Data_1.xlsx", "Data_2.xlsx", ..., "Data_10.xlsx"와 같은 파일을 병합하고, 숫자가 1000보다 큰 데이터로 필터링하여 "C:\MergedData\MergedData.xlsx"에 저장하는 예시이다. VBA 코드를 실행하면, 해당 폴더에서 원본 파일들을 병합한 뒤 원하는 데이터로 필터링하여 저장되고 닫힌다.

마무리

VBA를 사용하면 업무 관련 파일 시스템을 자동화하는데 많은 도움이 된다. 파일 생성과 저장, 파일 열기와 데이터 처리, 파일 병합과 필터링 등 다양한 업무 관련 작업을 자동화할 수 있다. VBA를 익혀서 업무 효율을 향상시키고 시간을 절약할 수 있으니, 조금씩 익숙해져보자.