VBA – 텍스트 파일에 값 입력하기

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 4월 15, 2023

이 튜토리얼에서는 VBA를 사용하여 텍스트 파일에 값을 입력하는 방법을 보여드립니다.

텍스트 파일에 쓰기

아래 코드는 FileSystemObject를 사용합니다(자세히 알아보기). 이를 사용하려면 VB 스크립트 런타임 라이브러리에 대한 참조를 설정해야 합니다.

새로운 텍스트 파일에 쓰기

FileSystemObjectCreateTextFile 메서드를 사용하면 텍스트 파일을 생성한 다음 콘텐츠를 추가할 수 있습니다:

Sub FSOCreateAndWriteToTextFile() 
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")

    FileToCreate.Write "test line"
    FileToCreate.Close

End Sub

콘텐츠는 따움표로 묶이지 않는다는 점에 유의해 주세요.

기존 텍스트파일에 쓰기

기존 텍스트 파일에 쓰려면 ForWriting 모드로 FileSystemObjectOpenTextFile 메서드를 사용해야 합니다.

Sub FSOWriteToTextFile() 
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForWriting)

    FileToWrite.Write "test line"
    FileToWrite.Close

End Sub

기존 텍스트 파일에 쓰기 위해 반드시 FileSystemObject가 필요한 것은 아닙니다. 위의 예제는 아래 코드에서 다른 방식으로 표시됩니다(자세한 내용은 “데이터 범위를 텍스트 파일에 입력하기” 섹션의 예제를 참조해 주세요):

Sub WriteToTextFile()
    Dim FileName As String
    FileName = "C:\Test\TestFile.txt"

    Open FileName For Output As #1
    Print #1, "test line"
    Close #1

End Sub

Print 대신 Write 명령을 사용하면 추가된 내용이 따옴표로 묶이게 된다는 점에 유의하세요.

Write #1, "test line #1"
Print #1, "test line #2"

위 명령어를 실행하면 다음과 같은 텍스트 파일이 생성됩니다:

text in quotes

기존 텍스트 파일에 추가하기

위 코드에서 모드를 ForAppending으로 변경하면 텍스트 파일 끝에 한 줄을 추가할 수 있습니다:

Set FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)

WriteLine 메서드

입력 문자열을 기존 콘텐츠의 새로운 줄에 추가합니다.

Write 메서드

입력 문자열이 기존 콘텐츠와 같은 줄에 추가됩니다.

WriteBlankLines 메서드

이 메서드는 텍스트 파일에 입력할 빈 줄의 수를 매개변수로 받습니다.

아래 코드는 위에서 설명한 Write 메서드 간의 차이점을 보여줍니다:

Sub WriteMethods()
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)

    FileToWrite.Write "test line #1 "
    FileToWrite.Write "test line #2"
    FileToWrite.WriteBlankLines (3)
    FileToWrite.WriteLine "test line #3"
    FileToWrite.WriteLine "test line #4"
    FileToWrite.Close

End Sub

실행 결과는 다음과 같습니다:write methods

데이터 범위를 텍스트 파일에 입력하기

워크시트의 데이터 범위를 텍스트 파일로 출력하려면 다음 코드를 사용할 수 있습니다:

Sub OutputToTextFile()
    Dim FileName As String, LineText As String
    Dim MyRange As Range, i, j
    
    FileName = "C:\Test\TestFile.txt" '생성하려는 텍스트 파일 이름을 지정합니다
    
    Open FileName For Output As #1
    
    Set MyRange = Range("data") '워크시트에 "data"라는 데이터 범위가 있다고 가정합니다
    For i = 1 To MyRange.Rows.Count
        For j = 1 To MyRange.Columns.Count
            LineText = IIf(j = 1, "", LineText & ",") & MyRange.Cells(i, j) '생성된 텍스트 파일의 데이터들은 쉼표 구분 기호로 구분됩니다
        Next j
        Print #1, LineText 'Print 대신 Write 명령을 사용하면 출력 텍스트 파일에 따옴표로 묶인 데이터가 생성됩니다.
    Next i

    Close #1

End Sub

배열을 텍스트 파일로 저장하기

다음과 같이 데이터 배열을 텍스트 파일에 저장할 수도 있습니다:

Sub SaveArrayToTextFile()
    Dim MyArray As Variant
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject")

    MyArray = Array(Array("00", "01"), Array("10", "11"), Array("20", "21"))

    Set FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")

    For n = 0 To UBound(MyArray)
        FileToCreate.WriteLine MyArray(n)(0) & "," & MyArray(n)(1)
    Next
    
    FileToCreate.Close

End Sub

 

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기