VBA-텍스트 파일
Excel 파일을 읽고 VBA를 사용하여 셀의 내용을 텍스트 파일에 쓸 수도 있습니다. VBA는 사용자가 두 가지 방법을 사용하여 텍스트 파일로 작업 할 수 있도록합니다.
- 파일 시스템 개체
- 쓰기 명령 사용
FSO (파일 시스템 개체)
이름에서 알 수 있듯이 FSO는 개발자가 드라이브, 폴더 및 파일을 사용하는 데 도움이됩니다. 이 섹션에서는 FSO를 사용하는 방법에 대해 설명합니다.
Sr. 아니. | 개체 유형 및 설명 |
---|---|
1 | Drive 드라이브는 개체입니다. 시스템에 연결된 드라이브에 대한 정보를 수집 할 수있는 메서드와 속성을 포함합니다. |
2 | Drives 드라이브는 컬렉션입니다. 물리적 또는 논리적으로 시스템에 연결된 드라이브 목록을 제공합니다. |
삼 | File 파일은 개체입니다. 여기에는 개발자가 파일을 생성, 삭제 또는 이동할 수있는 메서드와 속성이 포함되어 있습니다. |
4 | Files 파일은 컬렉션입니다. 폴더에 포함 된 모든 파일 목록을 제공합니다. |
5 | Folder 폴더는 개체입니다. 개발자가 폴더를 생성, 삭제 또는 이동할 수있는 메서드와 속성을 제공합니다. |
6 | Folders 폴더는 컬렉션입니다. 폴더 내의 모든 폴더 목록을 제공합니다. |
7 | TextStream TextStream은 개체입니다. 개발자가 텍스트 파일을 읽고 쓸 수 있습니다. |
드라이브
Drive특정 디스크 드라이브 또는 네트워크 공유의 속성에 대한 액세스를 제공하는 개체입니다. 다음 속성이 지원됩니다.Drive 객체-
- AvailableSpace
- DriveLetter
- DriveType
- FileSystem
- FreeSpace
- IsReady
- Path
- RootFolder
- SerialNumber
- ShareName
- TotalSize
- VolumeName
예
Step 1− FSO를 사용하여 스크립팅을 진행하기 전에 Microsoft Scripting Runtime을 활성화해야합니다. 동일한 작업을 수행하려면 다음 스크린 샷에 표시된대로 도구 → 참조로 이동합니다.
Step 2 − "Microsoft Scripting RunTime"을 추가하고 확인을 클릭합니다.
Step 3 − 텍스트 파일에 쓰고 싶은 데이터를 추가하고 명령 버튼을 추가합니다.
Step 4 − 이제 스크립트 할 시간입니다.
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
' Create a TextStream.
Set stream = fso.OpenTextFile("D:\Try\Support.log", ForWriting, True)
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = Trim(ActiveCell(i, j).Value)
stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
Next j
Next i
stream.Close
MsgBox ("Job Done")
End Sub
산출
스크립트를 실행할 때 워크 시트의 첫 번째 셀에 커서를 놓아야합니다. Support.log 파일은 "D : \ Try"아래의 다음 스크린 샷과 같이 생성됩니다.
파일의 내용은 다음 스크린 샷에 표시됩니다.
쓰기 명령
FSO와 달리 참조를 추가 할 필요는 없지만 드라이브, 파일 및 폴더로 작업 할 수 없습니다. 텍스트 파일에 스트림을 추가 할 수 있습니다.
예
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
FilePath = "D:\Try\write.txt"
Open FilePath For Output As #2
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
Write #2, CellData
Next j
Next i
Close #2
MsgBox ("Job Done")
End Sub
산출
스크립트를 실행하면 다음 스크린 샷과 같이 "D : \ Try"위치에 "write.txt"파일이 생성됩니다.
파일의 내용은 다음 스크린 샷에 표시됩니다.