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"파일이 생성됩니다.

파일의 내용은 다음 스크린 샷에 표시됩니다.