본문 바로가기

카테고리 없음

엑셀에서 버튼 클릭 시 외부 파일을 열고 특정 데이터만 자동 복사해오는 방법 (VBA 활용)

by 공부하는 40대 2025. 7. 23.

반응형


반복 업무 중 자주 사용하는 기능 중 하나는
✅ 다른 엑셀 파일을 열고
✅ 특정 범위만 복사해서
✅ 현재 시트로 자동 붙여넣는 작업입니다.

예를 들어,
• 매출자료.xlsx 파일에서 A1:F10만 복사해서 내 보고서 시트에 붙여넣기
• 버튼 한 번으로 외부 자료 연동 자동화

오늘은 VBA로 버튼 클릭 시 외부 파일 열기 + 특정 범위 복사 + 자동 붙여넣기를 완성하는 실전 예제를 알려드릴게요.



✅ 1. VBA 코드: 외부 파일 열고 복사하여 붙여넣기

Sub ImportDataFromExternalFile()
    Dim sourceWb As Workbook
    Dim sourceWs As Worksheet
    Dim targetWs As Worksheet
    Dim sourcePath As String

    ' 외부 파일 경로 (반드시 전체 경로로!)
    sourcePath = "C:\Users\사용자\Documents\매출자료.xlsx"

    ' 현재 워크북의 붙여넣을 시트
    Set targetWs = ThisWorkbook.Sheets("보고서") ' 내 시트 이름

    ' 외부 파일 열기
    Application.ScreenUpdating = False
    Set sourceWb = Workbooks.Open(sourcePath)
    Set sourceWs = sourceWb.Sheets("Sheet1") ' 복사할 시트 이름

    ' 원하는 범위 복사
    sourceWs.Range("A1:F10").Copy

    ' 붙여넣기 위치 (예: A1부터)
    targetWs.Range("A1").PasteSpecial xlPasteValues

    ' 외부 파일 닫기 (저장 없이)
    sourceWb.Close SaveChanges:=False
    Application.CutCopyMode = False
    Application.ScreenUpdating = True

    MsgBox "외부 파일에서 데이터가 복사되었습니다.", vbInformation
End Sub




✅ 2. 기능 설명

항목 설명
Workbooks.Open 외부 파일 열기
sourceWs.Range(...).Copy 복사할 범위 지정
targetWs.Range(...).PasteSpecial 값 붙여넣기
sourceWb.Close SaveChanges:=False 외부 파일 닫기 (변경 없이)




✅ 3. 버튼 연결
1. [개발 도구] → [삽입] → 양식 컨트롤 버튼
2. 버튼 생성 후 ImportDataFromExternalFile 매크로 연결
3. 버튼 텍스트: “자료 불러오기”, “매출 가져오기” 등 자유 설정



✅ 4. 고급 팁: 외부 파일 열지 않고 연결된 시트에서 불러오기 (Query/Table 대신 VBA)

파일이 자주 변경될 경우, 경로를 사용자로부터 선택받는 방식도 가능:

With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "가져올 파일 선택"
    .Filters.Add "Excel Files", "*.xls*"
    If .Show = -1 Then
        sourcePath = .SelectedItems(1)
    Else
        Exit Sub
    End If
End With

→ 이 코드를 앞에 붙이면 파일을 매번 직접 선택 가능하게 바꿀 수 있습니다.



요약 정리

기능 코드 예시 설명
외부 파일 열기 Workbooks.Open 대상 파일 지정
복사할 범위 Range("A1:F10") 자유 설정 가능
현재 시트에 붙여넣기 .PasteSpecial xlPasteValues 값만 복사
파일 자동 닫기 .Close SaveChanges:=False 원본 변경 없음




이 기능은
📊 매출/실적/재고/외부입력 자동 수집
📥 반복 보고용 템플릿 자동 채우기
📎 연결된 데이터 자동 불러오기
에 매우 유용합니다.

다음 글에서는 **“엑셀에서 버튼 클릭 시 특정 데이터를 구글 스프레드시트에 자동 업로드하는 방법”**을 소개해드릴게요. (Google Sheets API 활용 + 실전 사용 팁 포함)

반응형