메뉴
실무 위키VBA 코드SplitFileExt

SplitFileExt

Function

문자열이나 배열로 입력된 파일경로에서 파일명과 확장자를 분리해 배열로 반환하는 VBA 사용자 지정 함수입니다.

SplitFileExt 코드 미리보기
구문 = SplitFileExt ( 파일명 )
인수구분 형식 설명
Files 필수 Variant
확장자를 분리할 경로가 입력된 '문자열' 또는 '배열'입니다.
배열을 입력하면 기존 배열의 최소·최대 위치와 동일한 크기로 결과값이 출력됩니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · SplitFileExt
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ SplitFileExt 함수
'▶ 배열 또는 String으로 받아온 확장자가 포함된 파일경로를 파일이름과 확장자로 분리합니다. (2차원 배열, 0 - 파일명, 1 - 확장자)
'▶ 인수 설명
'_____________Files : 확장자를 분리할 배열 또는 파일명입니다.
'###############################################################
Function SplitFileExt(Files As Variant) As Variant
Dim i As Long
Dim sFile As String
Dim vaArr As Variant
On Error GoTo ErrHandler:
'// 파일 타입을 확인합니다. 배열 또는 기타 문자열일 경우
If TypeName(Files) = "Variant()" Then
'// 입력 형식이 배열일 경우
ReDim vaArr(LBound(Files) To UBound(Files), 0 To 1)
For i = LBound(Files) To UBound(Files)
sFile = Files(i)
vaArr(i, 0) = Left(sFile, InStrRev(sFile, ".") - 1)
vaArr(i, 1) = Right(sFile, Len(sFile) - InStrRev(sFile, ".") + 1)
Next
Else
'// 입력 형식이 기타 문자열일 경우
ReDim vaArr(0, 1)
vaArr(0, 0) = Left(Files, InStrRev(Files, ".") - 1)
vaArr(0, 1) = Right(Files, Len(Files) - InStrRev(Files, ".") + 1)
End If
SplitFileExt = vaArr
Exit Function
ErrHandler:
MsgBox "올바른 파일경로 또는 파일명을 입력하세요." & sFile
End
End Function

활용 예제

반환되는 배열 구조
Array = SplitFileExt("C:\바탕화면\예제파일.xlsx") '// 함수 입력
Array (0, 0) = "C:\바탕화면\예제파일" '// 첫번째값 : 파일경로
Array (0, 1) = ".xlsx" '// 두번째값 : 확장자
셀에 입력된 파일경로를 파일명과 확장자로 분리하기
Sub Test()
Dim sPath As String
Dim vPath As Variant
sPath = Sheet1.Range("B3").Value
vPath = SplitFileExt(sPath)
Sheet1.Range("C6").Value = vPath(0, 0)
Sheet1.Range("C7").Value = vPath(0, 1)
MsgBox "파일명과 확장자를 분리하였습니다." & vbNewLine & _
"파일명 :" & vPath(0, 0) & vbNewLine & _
"확장자 :" & vPath(0, 1)
End Sub

안내사항

올바르지 않은 파일경로를 입력하면 '올바른 파일경로 또는 파일명을 입력하세요.' 안내 메시지가 표시된 뒤 명령문이 종료됩니다.
댓글 0
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
스크랩 완료