엑셀에서 vba를 이용하여 여러개의 텍스트파일을 읽어올 일이 있습니다.
주석도 같이 달아 두었습니다.
Sub ImportTxtFile()
Dim fPath As Variant, T As String, i As Integer, tmp() As Byte, FN As Integer
fPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "텍스트파일 선택", MultiSelect:=True) '복수선택 가능
If TypeName(fPath) = "Boolean" Then Exit Sub '// 취소버튼 또는 파일이 선택되지 않으면 프로시져 종료
For i = 1 To UBound(fPath) '// 선택한 파일을 을 순환하면서
FN = FreeFile '// 파일번호 할당
ReDim tmp(FileLen(fPath(i)) - 1) As Byte '// 바이트배열 크기
Open fPath(i) For Binary As #FN '// 파일을 바이너리로 열음
Get #FN, , tmp '// 바이트 배열에 담음
Close #FN '// 파일을 닫음
If Len(T) Then T = T & vbNewLine '// 변수가 비어있지 않으면 줄바꿈을 넣음
T = T & StrConv(tmp, vbUnicode) '// 바이트를 텍스트로 변환해서 T변수에 추가
Next '// 다음파일 진행
fPath = Split(T, vbNewLine) '// 얻어온 텍스트를 줄바꿈으로 분리
Cells.Clear '// 시트의 셀을 초기화
[A1].Resize(UBound(fPath) + 1).Value = Application.Transpose(fPath) '// 시트에 내용을 뿌림
End Sub
이 포스팅은 쿠팡 파트너스 활동으로, 일정액의 커미션을 제공받고 있습니다.