본문 바로가기
업무 자동화

엑셀 VBA: 폴더 내 파일 이름 한 번에 바꾸기 (특정 글자 치환 매크로)

by jungdabnote 2026. 1. 24.
반응형

회사에서 파일 정리하다 보면
파일 이름을 한꺼번에 바꿔야 할 때가 꼭 한 번씩 옵니다.

예를 들면 이런 경우죠.

  • 2025년_1월_매출
  • 2025년_2월_매출
  • 2025년_3월_매출 

이런 파일이 수십 개, 많게는 백 개 넘게 있는데
이걸 전부 2026년으로 바꿔야 한다고 하면요.

하나 클릭해서 F2 누르고, 고치고 엔터…
이걸 몇 번만 해도 슬슬 현타가 옵니다.
“내가 이걸 하려고 회사 다니나…” 싶은 순간이죠.

그래서 이번에는
엑셀 VBA로 폴더 안 파일 이름을 한 번에 바꿔주는 매크로를 정리해봤습니다.
찾을 글자만 지정해 주면, 원하는 글자로 싹 바꿔줍니다.


이런 상황에서 특히 유용합니다

실무에서 은근히 자주 씁니다.

  • 연도 변경
     2025_상반기  2026_상반기
  • 파일명 양식 통일
    → 파일명 앞에 [대외비], [최종] 같은 문구 붙일 때
  • 오타 수정
    → 수십 개 파일에 들어간 동일한 오타 한 번에 수정할 때

한 번 써보면
“이걸 왜 이제 썼지?” 싶은 작업 중 하나입니다.


파일 이름 일괄 변경 매크로 설명

이 매크로는 이런 방식으로 동작합니다.

  1. 작업할 폴더를 선택
  2. 파일 이름에서 찾을 글자 입력
  3. 그 글자를 바꿀 글자 입력
  4. 폴더 안 파일들을 전부 검사해서 자동으로 이름 변경

참고로
👉 바꿀 글자를 빈 칸으로 두면,
찾은 글자를 파일명에서 삭제하는 용도로도 쓸 수 있습니다.


VBA 매크로 사용 방법

  1. 엑셀에서 Alt + F11 눌러 VBA 편집기 열기
  2. 상단 메뉴 [삽입] → [모듈] 클릭
  3. 아래 코드 그대로 복사해서 붙여넣기
  4. 엑셀로 돌아와 Alt + F8 → BatchRenameFiles 실행

파일 이름 일괄 변경 VBA 전체 코드

 
Sub BatchRenameFiles()

    Dim FolderPath As String
    Dim FileName As String
    Dim NewFileName As String
    Dim OldText As String
    Dim NewText As String
    Dim FileDialog As FileDialog
    Dim Count As Integer

    ' 폴더 선택
    Set FileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    FileDialog.Title = "파일 이름을 변경할 폴더를 선택하세요"

    If FileDialog.Show = -1 Then
        FolderPath = FileDialog.SelectedItems(1) & "\"
    Else
        MsgBox "폴더가 선택되지 않았습니다.", vbExclamation
        Exit Sub
    End If

    ' 찾을 글자 입력
    OldText = InputBox("파일 이름에서 찾을 글자를 입력하세요." & vbCrLf & _
                       "(예: 2025)", "문자열 찾기")
    If OldText = "" Then Exit Sub

    ' 바꿀 글자 입력
    NewText = InputBox("[" & OldText & "]를 어떤 글자로 바꾸시겠습니까?" & vbCrLf & _
                       "(예: 2026)", "문자열 바꾸기")

    ' 파일 이름 변경
    FileName = Dir(FolderPath & "*.*")
    Count = 0

    Do While FileName <> ""

        If InStr(FileName, OldText) > 0 Then
            NewFileName = Replace(FileName, OldText, NewText)

            ' 동일한 이름의 파일이 없을 경우에만 변경
            If Dir(FolderPath & NewFileName) = "" Then
                Name FolderPath & FileName As FolderPath & NewFileName
                Count = Count + 1
            End If
        End If

        FileName = Dir
    Loop

    MsgBox "총 " & Count & "개의 파일 이름이 변경되었습니다.", _
           vbInformation, "완료"

End Sub

사용 전에 꼭 알아둘 점 (중요)

이 매크로는 정말 편한 대신,
되돌리기가 안 됩니다.

  • 파일 이름 변경은 Ctrl + Z 불가
  • 실무 파일에 바로 쓰지 말고
    👉 테스트용 폴더에서 먼저 연습 추천
  • 파일이 열려 있으면 이름 변경이 안 될 수 있음

조심해서 쓰면 문제 없고,
습관처럼 막 쓰면 사고 나기 딱 좋습니다.


마무리

이 글로

  • 엑셀 파일 합치기
  • 시트별로 파일 나누기
  • 엑셀 파일 PDF로 변환하기
  • 파일 이름 일괄 변경하기

직장인 엑셀 자동화 4종 세트가 전부 정리됐습니다.

이 정도만 활용해도
단순 반복 작업 때문에 야근할 일은 확실히 줄어듭니다.

엑셀로 일하다가
“이거 너무 노가다 아닌가?” 싶으면
매크로 한 번 써보는 것도 나쁘지 않습니다.

 

다음에도
실무에서 바로 써먹을 수 있는 엑셀 자동화 팁 있으면
정리해서 올려보겠습니다!

반응형