컴퓨터 공부/엑셀 & VBA

[엑셀vba] 파일이름 변경하기 (Name AS)

도 박사 2022. 1. 22. 11:27
반응형

엑셀vba를 이용해 파일이름을 변경해보자.

 

변경할 때 쓰는 함수는 Name As 아주 간단하다.

 

사용법: Name 원본파일 As 변경될파일이름

ex) Name "C:\test\A.txt" As "C:\test\AA.txt"

예시처럼 함수를 실행하면 A.txt가 AA.txt로 변경된다.


Name As 특징

  1. 파일 이름 변경 가능
  2. 파일 이동 시킬 수 있음
  3. 대소문자 구분하지 않음( a.txt = A.txt , aaaA.txt = Aaaa.txt 같은 파일로 취급)
  4. 확장자 변환 가능하지만 데이터 손실됨.
  5. 존재하지 않는 파일이면 오류 발생(53 런타임 오류, 파일을 찾을 수 없음)
  6. 존재하지 않는 폴더로 이동할 경우 오류 발생(53 런타임 오류, 파일을 찾을 수 없음)

Name As 테스트

Sub 파일이름변경하기()

    Name "C:\test\A.txt" As "C:\test2\AA.txt"
    Name "C:\test\B.txt" As "C:\test2\BB.dll"
    Name "C:\test\C.txt" As "C:\test2\CC.exe"
    Name "C:\test\D.txt" As "C:\test2\DD.ppt"
    Name "C:\test\E.txt" As "C:\test2\EE.xlsx"

End Sub

test 폴더에 있는 A~D.txt 파일들을 test2 폴더로 이동하면서 파일이름과 확장자를 변경하는 실험을 해봤다. 

 

 

test에서 test2 폴더로 이동과 이름변경이 완벽히 되고, 확장자까지 변환완료 되었다. 하지만 변환된 파일을 열어보면 파일이 손상되었거나 제대로 불러오지 못하였다. csv <-> txt 서로 확장자를 바꾼다면 데이터 손실없이 정상적으로 로드되었다. (단, txt 파일의 인코딩 방식이 UTF-8(bom)일 경우) 인코딩이 UTF-8(bom)이 아니라면 숫자, 영문자만 제대로 불러오고 한글은 깨짐현상이 나타났다.


메모장 인코딩 방식 확인

메모장을 열고 '파일>다른이름으로 저장'을 클릭하면 팝업 창이 나타난다. 중앙 하단에 보면 인코딩이라는 리스트박스를 볼 수 있으며 여기서 인코딩 방식을 설정한다.

 


 

반응형