Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

WorkBook|FileSystem|UsedRange|Columns|FreeFile|
|Open~For Output As~ |Print|Open ~For Input As~|
|Do While Not EOF()~Loop|Line Input~|OpenText|Close|

워크시트의 내용 텍스트문서로 만들기

텍스트화일은 세계 공통의 편리한 화일이다
어느 씨스템에서나 쉽게 읽어볼수 있고 쉽게 써넣을수 있는 화일이다
엑셀에 있는 데이타만 텍스트화일로 만들어야 할 경우가 많다
VBA의 I/O함수는 이럴때 참으로 유용하다



위의 시트(SampleData)의 정보를 아래와 같은 텍스트화일(Sample.txt)로 만든다



iFreeFile = FreeFile
은 메모리상의 영역을 iFreeFile에 배당받는다
메모리영역을 포인팅하는 번호표(Handle Number)와 같다

Open ThisWorkbook.Path & "\sample.txt" For Output As iFreeFile

ThisWorkBook.Path & "\sample.txt" 와 같이
현재통합문서의 경로에 Sample.txt라는 이름의
텍스트문서를 만들고 iFreeFile메모리영역에 열어 놓는다



그림과 같이 한줄 한줄

Print #iFreeFile, rY & "|" & rY.Offset(0, 1) & "|" _
    & rY.Offset(0, 2) & "|" & rY.Offset(0, 3) & "|" _
    & rY.Offset(0, 4)

각행의 각셀의 값을 | 문자로 연결하여 하나의 문자열을 만들어서
Print #iFreeFile 즉 현재 열려있는 텍스트화일에 한줄씩 작성해
나가는것이다

위에서 저장한 텍스트화일을 엑셀화일로 열기(수동으로)

위에서 저장한 텍스트화일을 엑셀화일로 열고 싶다면
아래의 그림과 같이 진행하면 된다

Step_1 Step_2 Step_3 Step_4 Step_5

위에서 저장한 텍스트화일을 엑셀화일로 열기(자동화작업으로)

위에서 손으로 메뉴를 크릭하면서 열었을때는 새로운 화일에
열리게 된다,텍스트화일 자체가 하나의 엑셀화일이 된것이지
엑셀시트가 된것이 아니다
이제 같은 통합문서의 다른 시트에 프로그래밍으로 불러 들여 보자

위에서 만든 텍트트화일(Sample.txt) 의 내용을 시트에 불러들인다

위의 내용은 텍스트문서를 엑셀에서 매뉴얼로 여는 과정을
매크로 기록기에 기록한 코드 와는 틀린것이다

첫째 것은 VBA의 IO함수를 활용한것이고
두번째것은 WorkBooks집합체오브젝트의 OpenText메소드를 활용한것이고
이것은 WorkBook오브젝트를 생성한것이므로 두개는 근본적으로 틀리지만
초보님들은 좀 헷갈려 한다
아무튼 프로그래밍에 능숙하다면 융통성있는 VBA의 IO함수로 직접 불러 들이기를
훨씬 좋아하게 될것이다

아래 화일에는 위의 OpenText메소드를 사용하는 기록된 매크로를
필요없는 매개변수는 없애는 다이어트를 하여 표현한다

Write And Read TextFile With IO Function