VBA에서 한 줄씩 텍스트 파일 읽기
추가 처리를 위해 파일에 저장된 모든 이메일을 Microsoft Excel로 전송하시겠습니까? 아니면 일부 후보자의 정보를 파일에 보관하고 싶습니까?
간단한 자동화 프로그램을 사용하여 이러한 모든 작업을 효율적으로 수행할 수 있습니다.
프로그램에서 텍스트 파일을 읽는 것은 합리적으로 필요합니다. 거의 모든 다른 코드에는 파일의 입력이나 파일의 출력이 필요합니다. 따라서 전체 파일을 한 줄씩, 한 문자씩 읽는 방법 등을 이해하는 것이 중요합니다.
이 문서에서는 텍스트 파일을 한 줄씩 읽는 방법을 강조합니다. 텍스트 파일을 읽고 요구 사항에 따라 구현하는 다양한 방법을 계속 탐색할 수 있습니다.
열기
를 사용하여 VBA에서 텍스트 파일을 한 줄씩 읽습니다.
파일을 열거나 닫는 몇 가지 VBA 옵션만 있습니다. 통합 문서, 파일 또는 폴더를 열고 닫는 데 사용할 수 있는 명령은 몇 가지뿐입니다.
다음은 파일을 열고 전체 파일을 한 줄씩 읽는 코드 스니펫입니다.
Sub example()
Dim FileNumber As Integer
Dim Data As String
FileNumber = FreeFile()
Open "Filename" For Input As #FileNumber
While Not EOF(1)
Line Input #FileNumber, Data
//Read a data line from the file
//Perform any required actions on the file
Wend
Close #FileNumber
End Sub
위에서 언급한 프로그램은 파일을 열고 데이터를 읽고 닫을 수 있는 간단한 코드 스니펫입니다. 코드 전체에서 FileNumber
및 Data
변수를 선언합니다.
FileNumber
를 얻기 위해 FreeFile()
함수가 사용됩니다. FreeFile()
함수는 파일을 여는 데 사용할 수 있는 다음 파일 번호를 반환합니다.
FreeFile()
함수에 의해 반환된 FileNumber
는 프로그램 전체에서 파일을 열고 읽고 닫는 데 사용됩니다.
참고: 프로그램 전체에서 열려 있는 모든 파일을 닫는 것이 중요합니다.
FreeFile()
함수가 FileNumber
를 반환한 후 Open
문을 사용하여 파일을 엽니다. Input
또는 Output
에 대한 파일 이름을 사용하고 다음으로 사용 가능한 FileNumber
를 사용합니다.
파일은 파일의 끝에 도달하지 않을 때까지 While
루프 내에서 한 줄씩 읽습니다: EOF가 아닌 동안(FileNumber)
. 루프는 라인별로 데이터를 읽고 데이터 스트림을 Data
변수에 저장합니다.
데이터에 대해 작업을 수행하려는 경우 While
루프 내에 코드 문을 추가할 수 있습니다.
이 프로그램에서 Input
을 위해 파일이 열리므로 While
루프 내에서 데이터를 읽습니다. 사용자가 출력
모드에서 데이터를 여는 경우 다음 명령문을 사용하여 데이터를 파일에 쓸 수 있습니다.
Write #FileNumber, "This is a sample data"
위 명령을 사용하여 "이것은 샘플 데이터입니다"
라는 문구가 파일에 기록됩니다.
FileSystemObject
를 TextStream
과 함께 사용하여 VBA에서 한 줄씩 텍스트 파일 읽기
두 번째 솔루션에는 Microsoft Scripting Runtime에 대한 참조가 필요합니다. FileSystemObject
데이터 유형이 사용되어 파일을 읽을 수 있습니다.
다음은 파일을 한 줄씩 읽는 코드 스니펫입니다.
Dim fso As FileSystemObject: Set fso = New FileSystemObject
Set txtStream = fso.OpenTextFile(filePath, ForReading, False)
Do While Not txtStream.AtEndOfStream
txtStream.ReadLine
Loop
txtStream.Close
fso
라는 FileSystemObject
가 선언되고 첫 번째 줄에 설정됩니다. txtStream
변수는 파일을 읽기 위해 열 때 반환되는 TextStream
개체입니다.
TextStream
개체를 사용하면 사용자가 읽기, 쓰기 또는 추가 모드에서 파일을 열 수 있습니다.
Do While
루프는 파일을 한 줄씩 구문 분석하는 데 사용됩니다. 파일의 끝은 txtStream.AtEndOfStream
으로 확인하고 ReadLine
명령을 사용하여 파일을 읽습니다.
코드 스니펫은 끝까지 파일을 한 줄씩 읽는 방법을 언급합니다. 파일에 한 줄을 쓰려면 TextStreamObject.WriteLine
을 사용하여 텍스트를 파일로 출력합니다.
프로그램이 끝나면 읽기용으로 열린 파일이 닫힙니다.
참고: 파일은 한 번에 하나의 모드로 열 수 있습니다. 사용자는 동일한 파일 개체에서 쓰고 읽을 수 없습니다. 다른 모드에서 파일을 열려면 다른 개체를 만들어야 합니다.
결론
간단한 VBA 문을 사용하여 쉽게 파일을 열고, 파일에서 읽고, 파일에 쓰고, 파일을 닫을 수 있습니다. 매크로를 사용하여 다른 파일에 대해 동일한 작업을 수행할 수 있습니다. 따라서 Microsoft Office가 제공하는 자동화 기능은 놀랍고 칭찬할 만합니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub