VBA – 범위를 CSV(구분기호로 구분된 텍스트 파일)로 내보내기

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 5월 6, 2023

범위를 CSV 파일로 저장하기

export range deliminated범위를 구분기호로 구분된 텍스트 파일로 내보내는 방법에 대한 670번째 해결 방법.

이 방법은 ‘다른 이름으로 저장’을 선택하여 워크시트를 텍스트 파일 또는 CSV 파일로 저장하는 Excel의 기본 방법을 사용하는 대신 사용할 수 있는 편리한 대안입니다:

 

1. 템플릿을 사용하며 헤더 및 기타 기타 항목을 제외한 데이터만 내보내려는 경우

2. 데이터 집합의 일부만 내보내려는 경우

3. 애플리케이션에 고유한 사용자 정의 구분 기호를 사용하여 파일을 저장하려는 경우.

1,2 또는 3을 수행해야 하는 경우 다음과 같은 함수가 도움이 될 수 있습니다. 이 함수는 내보낼 범위, 파일을 저장할 위치, 데이터를 구분할 구분 기호를 받은 다음 지정한 대로 데이터를 저장합니다.

ExportRange 함수를 호출하는 방법은 다음과 같습니다:

Sub CallExport()

  'ExportRange(범위,내보낼 위치,구분 기호)
  Call ExportRange(Sheet1.Range("A1:C20"), _

  "C:mark.txt", ",")

End Sub

우선 내보낼 범위와 내보낼 위치, 사용할 구분 기호를 함수에 알려줍니다. 또한 ExportRange 함수가 필요한데, 아래에 있습니다:

Function ExportRange(WhatRange As Range, _
         Where As String, Delimiter As String) As String

  Dim HoldRow As Long    '행 수를 저장할 변수입니다
  HoldRow = WhatRange.Row

  Dim c As Range

  '범위를 반복합니다
  For Each c In WhatRange
    If HoldRow <> c.Row Then
      '줄 바꿈 문자를 추가하고 여분의 구분 기호를 제거합니다
      ExportRange = Left(ExportRange, Len(ExportRange) - 1) _
                          & vbCrLf & c.Text & Delimiter
        HoldRow = c.Row
    Else
        ExportRange = ExportRange & c.Text & Delimiter
    End If
Next c

'여분의 구분 기호를 제거합니다
ExportRange = Left(ExportRange, Len(ExportRange) - 1)

'기존에 동일한 파일 이름이 존재한다면 삭제합니다
If Len(Dir(Where)) > 0 Then
    Kill Where
End If

Open Where For Append As #1    '새 파일에 값을 입력합니다
Print #1, ExportRange
Close #1
End Function

간편한 VBA 코딩

온라인에서 VBA 코드를 더 이상 검색하지 않아도 됩니다. 초보자도 최소한의 코딩 지식으로 프로시저를 처음부터 코딩할 수 있습니다. 코드를 빠르게 작성하고 싶으시다면 모든 사용자를 위한 VBA 코드 작성기인 AutoMacro에 대해 자세히 알아보세요!

alt text

 

자세히 알아보기!

 

vba-free-addin

VBA 코드 예시 추가 기능

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

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

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

무료 다운로드

VBA 코드 예시로 돌아가기