이 페이지에서
구문
= FileSequence ( 파일경로, [시작번호], [구분자] )
인수구분
형식 설명
파일경로
필수
String
순번을 매길 파일 경로입니다.
확장자를 포함한 전체 경로를 입력합니다.
시작번호
선택
Long
순번의 시작번호입니다. 기본값은 1입니다.
구분자
선택
String
파일명과 순번을 구분할 구분값입니다. 기본값은 하이픈(-) 입니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ FileSequence 함수
'▶ 기존 파일이 존재할 경우 순번을 매겨 파일을 저장합니다.
'▶ 인수 설명
'_____________FilePath : 확장자를 포함한 파일 경로입니다.
'_____________Sequence : 순번을 매길 시작번호입니다.
'_____________Delimiter : 파일명과 순번을 구분할 구분자입니다.
'▶ 보조 명령문 안내 : FileExist 함수
'###############################################################
Private Function FileSequence(FilePath As String, Optional Sequence As Long = 1, Optional Delimiter As String = "-") As String
Dim Ext As String: Dim Path As String: Dim newPath As String
Dim Pnt As Long
Pnt = InStrRev(FilePath, ".")
Path = Left(FilePath, Pnt - 1)
Ext = Right(FilePath, Len(FilePath) - Pnt + 1)
newPath = Path & Delimiter & Sequence & Ext
Do Until FileExists(newPath) = False
Sequence = Sequence + 1
newPath = Path & Delimiter & Sequence & Ext
Loop
FileSequence = newPath
End Function
활용 예제
기존 파일이 존재할 경우
sPath = FileSequence("C:\오빠두엑셀.xlsx", 1, " 사본-")
sPath = "C:\오빠두엑셀 사본-1.xlsx"
순번이 매겨진 기존 파일이 존재할 경우
sPath = FileSequence("C:\오빠두엑셀.xlsx", 1, " 사본-")
sPath = "C:\오빠두엑셀 사본-2.xlsx" '오빠두엑셀 사본-1.xlsx 가 존재하므로 순번이 2로 매겨집니다.
안내사항
순번을 매긴 파일 경로가 존재하는지 확인해야 하므로, 실행하려면 FileExists 명령문을 함께 추가해야 합니다.
VBA코드를 복붙했을때 컴파일 에러가 뜹니다. & sequence & 부분에서요 ㅠㅠ 왜 그런걸까요?
혹시 붙여넣기 한 코드가,
newPath = Path "amp;" Sequence "amp;" Ext 형식으로 입력되어 있는지 확인해보시겠어요?
홈페이지에 잠시 오류가 있어 "&" 특수기호가 "HTML 코드"로 출력되는 문제가 있었습니다 ^^;
지금은 문제가 해결되었으니 다시 시도해주시겠어요?
그래도 문제가 해결되지 않을경우 댓글 주시면 확인하여드리겠습니다^^
감사합니다.
그런데 이 함수를 사용하면 해당경로에 기존파일이 존재하지 않더라도 무조건 AAA-순번.확장자로 파일이 저장이 되네요
매크로 실행시
해당경로에 기존파일이 존재 하지 않는경우에는 AAA.확장자(순번표시없이)로 저장이되고
해당경로에 기존파일이 존재 하는 경우에는 AAA-순번.확장자로 저장이 되었으면 합니다. 어디를 수정해야 할까요?
감사합니다.