본문 바로가기
엑셀/VBA

엑셀과 VBA를 사용하여 텍스트파일 합치기

by 큐브빌드 2021. 3. 21.
반응형

블로그에 명령 프롬프트의 copy를 활용하여 텍스트 및 mp3 합치는 방법을 소개했었습니다.

downupup.tistory.com/5

 

텍스트 파일 , MP3 파일 연결하여 합치기

명령 프롬프트를 활용해서 텍스트 , MP3 파일을 연결해서 붙일 수 있어요. COPY라는 명령어를 사용해서 합칠 수 있어요. COPY 명령어 이렇게 +를 통해서 붙여 넣을 수 있어요 그러면 한번 붙여 넣어

downupup.tistory.com

이번에는 이걸 엑셀과 VBA를 통해서 조금 더 편리하게 만들려고 준비하였습니다.

 

사실 뭐 큰 기술이 필요한 건 아니었고 단지 VBA에서 명령 프롬프트를 사용하여 직접 타이핑하지 않고 컴퓨터가 진행해주는 정도의 매크로에 가깝습니다.

 

사용방법은 아주 간단합니다.

 

1. 파일명 불러오기 버튼 선택 (폴더 선택 창 노출됩니다.)

2. TXT 파일이 존재하는 폴더를 선택한 후 확인을 누릅니다.

선택한 폴더 주소와 현재 파일명이 노출됩니다.

3. 합치는 파일 밑에 합치고 싶은 파일 이름을 작성합니다. (확장자 포함)

 - 파일이 없어도 오류처리는 없습니다...ㅠㅠ (여기서 어떻게 체크할지 고민을 하고 있습니다.)

 

4. 생성되는 파일 이름을 작성합니다. (확장자 포함)

5. 파일 합치기 버튼을 누르시면 끝납니다.

 


Sub FileListLoad()
Range("c7", Range("c7").End(xlDown)).ClearContents

With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual

        With .FileDialog(msoFileDialogFolderPicker)
            .Show
     
            If .SelectedItems.Count = 0 Then
                Exit Sub
            Else
                strpath = .SelectedItems(1) & "\"
            End If
End With
End With
Range("d4") = strpath

Filename = Dir(strpath & "*.txt")
Do
i = i + 1
Range("c7").Offset(i - 1, 0) = Filename
If Filename = "" Then
MsgBox strpath & "폴더에는 TXT파일이 없습니다."
GoTo e
End If
Filename = Dir()
Loop Until Filename = ""

MsgBox "파일" & i & "개를 불러왔습니다."
e:
End Sub
Sub FileSum()

Dim FileCnt(), FileSP
Dim MakeFileName
MakeFileName = Range("i7")
Set FileSP = Range("f7")
i = 0
Do Until FileSP.Offset(i, 0) = ""
If i = 0 Then
SumFileName = FileSP.Offset(i, 0)
Else
SumFileName = SumFileName & " + " & FileSP.Offset(i, 0)
End If
i = i + 1
Loop

SumFileName = SumFileName & " " & MakeFileName
Shell "cmd.exe /c cd /d" & Range("d4") & "&& copy /b " & SumFileName
Shell "explorer.exe " & Range("d4"), vbNormalFocus
End Sub

텍스트파일합치기.xlsm
0.02MB

반응형

댓글