메뉴
실무 위키VBA 코드Base64ToFile

Base64ToFile

Function

Base64 코드를 디코딩해 파일로 저장하는 VBA 사용자 지정 함수입니다.

Base64ToFile 코드 미리보기
구문 = Base64ToFile ( Base64코드, 파일경로 )
인수구분 형식 설명
Base64코드 필수 String
파일로 저장할 Base64 코드입니다.
파일경로 필수 String
디코딩된 파일이 저장될 경로입니다.
폴더 경로와 파일명을 포함한 전체 경로를 입력합니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · Base64ToFile
Function Base64ToFile(sBase64 As String, sPath As String) As Byte()
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ Base64ToFile 함수
'▶ Base64로 작성된 코드를 디코딩하여 파일로 저장합니다.
'▶ 인수 설명
'_____________sBase64 : Base64 코드입니다.
'_____________sPath : 디코딩한 파일을 저장할 경로입니다.
'▶ 사용 예제
'Base64ToFile "xxxxx...", "C:\abc.png"
'##############################################################
Dim oXML As Object
Dim oNode As Object
On Error GoTo EH:
Set oXML = CreateObject("MSXML2.DOMDocument")
If InStr(1, sBase64, ";base64,") > 0 Then sBase64 = Split(sBase64, ";base64,")(1)
Set oNode = oXML.createElement("b64")
oNode.DataType = "bin.base64"
oNode.Text = sBase64
Base64ToFile = oNode.nodeTypedValue
Open sPath For Binary As #1
Put #1, 1, Base64ToFile
Close #1
Set oNode = Nothing
Set oXML = Nothing
Exit Function
EH:
Base64ToFile = ""
Set oNode = Nothing
Set oXML = Nothing
End Function

활용 예제

Base64 코드를 디코딩해 C:\abc.png 로 저장
Dim sBase64 As String
Dim sPath As String
sBase64 = "Base64코드"
sPath = "C:\abc.png"
Base64ToFile sBase64, sPath
URL에서 받아온 Base64 코드를 파일로 저장
Dim sBase64 As String
Dim sPath As String
sBase64 = GetHttp("URL").Body.InnerHTML  '<- Base64코드를 특정 URL에서 받아옵니다.
sPath = "C\..."
Base64ToFile sBase64, sPath

안내사항

명령문 실행 중 오류가 발생해 파일로 저장되지 않을 경우 빈칸("")을 반환합니다.
댓글 5
5 (3개 평가)
곰몽
곰몽 2022.07.05 18:33
원래 파일의 주소를 알 수 있는 방법은 없는거에요??
오빠두엑셀
오빠두엑셀 작성자 2022.07.05 21:48
안녕하세요.
ThisWorkBook.Path
를 사용해보세요.
곰몽
곰몽 2022.07.06 08:15
ㅠㅠ 원래의 Base64 파일의 주소를 묻는 거였습니다.
실재하지 않고 코딩된 채로 있는 것인지??
오빠두엑셀
오빠두엑셀 작성자 2022.07.06 14:40
그건 상황에 따라 다릅니다.
Base64는 언어체계의 한 종류입니다.
만약 Base64 언어를 특정 파일에서 불러온다면
이미 파일 경로를 알고 있는 상황이 아닐까 생각됩니다.
강민준🤗
강민준🤗 2024.08.11 08:23
좋은 강의 감사합니다🙇‍♂️
스크랩 완료