아래 절차는 텍스트 파일에서 ADO 레코드 집합을 가져와 워크 시트에 결과를 채우는 데 사용할 수 있습니다.

Sub GetTextFileData(strSQL As String, strFolder As String, rngTargetCell As Range)

' example: GetTextFileData "SELECT * FROM filename.txt", _

"C:\FolderName", Range("A3")

' example: GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _

"C:\FolderName", Range("A3")

Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer

If rngTargetCell Is Nothing Then Exit Sub

Set cn = New ADODB.Connection

On Error Resume Next

cn.Open "Driver={Microsoft Text Driver (.txt; .csv)};" & _

"Dbq=" & strFolder & ";" & _

"Extensions=asc,csv,tab,txt;"

On Error GoTo 0

If cn.State <> adStateOpen Then Exit Sub

Set rs = New ADODB.Recordset

On Error Resume Next

rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText

On Error GoTo 0

If rs.State <> adStateOpen Then

cn.Close

Set cn = Nothing

Exit Sub

End If

' the field headings

For f = 0 To rs.Fields.Count - 1

rngTargetCell.Offset(0, f).Formula = rs.Fields(f).Name

Next f

rngTargetCell.Offset(1, 0).CopyFromRecordset rs ' works in Excel 2000 or later

'RS2WS rs, rngTargetCell ' works in Excel 97 or earlier

rs.Close

Set rs = Nothing

cn.Close

Set cn = Nothing

End Sub

절차는 다음과 같이 사용할 수 있습니다.

Sub TestGetTextFileData()

Application.ScreenUpdating = False

Workbooks.Add

GetTextFileData "SELECT * FROM filename.txt", "C:\FolderName", Range("A3")

'    GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _

"C:\FolderName", Range("A3")

Columns("A:IV").AutoFit

ActiveWorkbook.Saved = True

End Sub

filename.txt를 데이터를 가져올 텍스트 파일의 이름으로 바꿉니다.

C : \ FolderName을 텍스트 파일이 저장된 폴더의 이름으로 바꿉니다.

텍스트 파일의 첫 번째 행은 열 머리글 / 필드 이름으로 사용됩니다.

datwa가있는 각 열은 제어판의 국가 별 설정에 사용되는 목록 구분 문자로 구분해야합니다. I 노르웨이는 일반적으로 세미콜론 (;)이고 다른 국가에서는 쉼표 (,) 일 수 있습니다.

이 링크를 클릭하면 RS2WS 절차를 찾을 수 있습니다.

매크로 예제에서는 VBA 프로젝트가 ADO 개체 라이브러리에 대한 참조를 추가했다고 가정합니다.

도구, 참조 메뉴를 선택하고 Microsoft ActiveX 데이터 개체 x.x 개체 라이브러리를 선택하여 VBE 내에서이 작업을 수행 할 수 있습니다.