VBA에서 한 줄씩 텍스트 파일 읽기

Bilal Shahid 2023년6월21일
  1. 열기를 사용하여 VBA에서 텍스트 파일을 한 줄씩 읽습니다.
  2. FileSystemObjectTextStream과 함께 사용하여 VBA에서 한 줄씩 텍스트 파일 읽기
  3. 결론
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

위에서 언급한 프로그램은 파일을 열고 데이터를 읽고 닫을 수 있는 간단한 코드 스니펫입니다. 코드 전체에서 FileNumberData 변수를 선언합니다.

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"

위 명령을 사용하여 "이것은 샘플 데이터입니다"라는 문구가 파일에 기록됩니다.

FileSystemObjectTextStream과 함께 사용하여 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가 제공하는 자동화 기능은 놀랍고 칭찬할 만합니다.

작가: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

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

관련 문장 - VBA File