엑셀 VBA로 다른 파일의 데이터 손쉽게 가져오기

2025-05-15 · Uncategorized · 읽는데 9분

엑셀 VBA로 다른 파일의 데이터 손쉽게 가져오기
엑셀을 사용하다 보면 여러 파일에서 데이터를 가져와야 할 때가 많습니다. 특히, 업무에서 반복적으로 데이터를 복사하고 붙여넣는 작업은 시간도 많이 소요되고 실수의 가능성도 높습니다.

이러한 반복적인 작업을 효율적으로 처리하기 위해 VBA(Visual Basic for Applications) 매크로를 활용하는 것이 좋습니다. 이번 글에서는 엑셀 VBA를 이용해 다른 파일의 데이터를 자동으로 가져오는 방법에 대해 알아보겠습니다.

썸네일

VBA 매크로 시작하기

VBA는 엑셀의 자동화 및 커스터마이징을 위한 프로그래밍 언어입니다. 매크로를 사용하면 사용자가 자주 수행하는 작업을 자동으로 실행할 수 있으며, 이를 통해 업무의 생산성을 높일 수 있습니다.

처음 VBA를 사용하는 분들은 매크로 기록 기능을 통해 기본적인 코드를 생성한 후, 이를 수정해 나가는 방법으로 학습할 수 있습니다. 매크로를 시작하기 위해서는 엑셀에서 개발 도구 탭을 활성화해야 합니다.

이는 다음과 같은 단계를 통해 가능합니다.

  1. 엑셀을 열고, 상단 메뉴에서 ‘파일’을 클릭합니다.
  2. ‘옵션’을 선택한 후 ‘리본 사용자 지정’을 클릭합니다.
  3. 오른쪽 목록에서 ‘개발 도구’를 체크한 후 ‘확인’을 클릭합니다.

이제 개발 도구 탭이 활성화되었으니, 여기에 있는 매크로 기록 기능을 활용할 수 있습니다.

단계 설명
1 엑셀을 열고 ‘파일’ 클릭
2 ‘옵션’ 선택 후 ‘리본 사용자 지정’ 클릭
3 ‘개발 도구’ 체크 후 ‘확인’ 클릭

다른 파일의 데이터 가져오기

이제 다른 엑셀 파일에서 데이터를 가져오는 매크로를 작성해보겠습니다. 예를 들어, A 엑셀 파일에서 성과급 데이터를 가져와 B 엑셀 파일에 붙여넣는 작업을 하겠습니다.

파일 열기

먼저, A 엑셀 파일을 열어야 합니다. VBA 코드에서 파일을 열기 위해 Workbooks.Open 메서드를 사용합니다.

다음은 A 엑셀 파일을 여는 코드의 예입니다.

vba Workbooks.Open Filename:="C:\경로\A엑셀.xlsx"

여기서 "C:\경로\A엑셀.xlsx"는 A 엑셀 파일의 경로를 나타냅니다. 각자의 PC 환경에 맞게 경로를 수정해 주셔야 합니다.

데이터 복사

파일을 연 후, 원하는 데이터를 복사해야 합니다. 예를 들어, G8:G10 범위의 데이터를 복사하려면 다음과 같이 코드를 작성할 수 있습니다.

vba Range("G8:G10").Select Selection.Copy

이제 복사된 데이터는 클립보드에 저장되어 있습니다.

코드 설명
Range("G8:G10").Select G8:G10 범위를 선택
Selection.Copy 선택한 범위를 복사

B 엑셀 파일에 붙여넣기

이제 B 엑셀 파일에 데이터를 붙여넣는 작업을 진행합니다. 이를 위해 B 엑셀 파일을 열고, 붙여넣을 위치를 지정해야 합니다.

vba Workbooks.Open Filename:="C:\경로\B엑셀.xlsx" Windows("B엑셀.xlsx").Activate Range("J8").Select ActiveSheet.Paste

위의 코드에서 B 엑셀 파일을 연 후, J8 셀에 데이터를 붙여넣습니다. Windows("B엑셀.xlsx").Activate 메서드를 통해 B 엑셀 파일로 활성 창을 전환하는 점에 유의해야 합니다.

B 엑셀 파일 닫기

데이터를 붙여넣은 후, B 엑셀 파일을 닫는 코드를 추가합니다.

vba ActiveWorkbook.Close SaveChanges:=True

이 코드는 변경 사항을 저장한 후 B 엑셀 파일을 닫습니다.

다른 내용도 보러가기 #1

동적으로 경로 설정하기

파일 경로를 하드코딩하는 것은 불편할 수 있습니다. 이럴 때는 ThisWorkbook.Path를 활용하여 현재 작업 중인 엑셀 파일의 경로를 동적으로 설정할 수 있습니다.

vba Workbooks.Open Filename:=ThisWorkbook.Path & "\B엑셀.xlsx"

이렇게 하면 USB 등 다른 이동 매체에서 사용할 경우에도 경로를 수정할 필요가 없습니다.

코드 설명
ThisWorkbook.Path 현재 엑셀 파일의 경로를 반환

데이터 위치 자동 변경하기

성과급 데이터가 매년 바뀌는 경우가 많습니다. 이럴 때는 데이터 위치를 동적으로 변경할 수 있도록 코드를 작성하는 것이 좋습니다.

예를 들어, 셀의 위치를 연도에 따라 자동으로 변경하는 코드는 다음과 같이 작성할 수 있습니다.

```vba Dim yearOffset As Integer yearOffset = Year(Date) - 2023 ' 예를 들어 2023년 자료일 경우

Cells(8, "H").Offset(0, yearOffset).Select ActiveSheet.Paste ```

위 코드는 현재 연도와 2023년을 비교하여, H8 셀에서 연도에 따라 옆으로 이동하여 붙여넣습니다.

코드 설명
Offset(0, yearOffset) 현재 셀에서 오른쪽으로 이동

결론

VBA를 활용하면 엑셀에서 다른 파일의 데이터를 손쉽게 가져올 수 있습니다. 위에서 설명한 방법을 통해 반복적인 작업을 자동화하면 업무 효율성을 크게 높일 수 있습니다.

매크로의 힘을 활용하여 복잡한 데이터를 간편하게 처리하고, 업무 시간을 절약하는 데 도움이 되기를 바랍니다. 앞으로도 다양한 VBA 활용법을 익혀 업무에 적용해 보세요.

관련 영상

같이 보면 좋은 글