엑셀 큰따옴표(쌍따옴표) 없이 셀 내용 복사하는 방법

2021. 12. 27. 20:50 / 서기랑

 엑셀에서 셀의 내용을 복사하는 경우 큰따옴표가 붙어서 복사되는 경우가 있다.

 이는 셀 내용에 줄 바꿈이 포함되어 있으면 구분을 위해 큰따옴표가 붙어서 복사가 되는 것인데 엑셀의 옵션에는 이와 관련된 설정이 따로 없기 때문에 큰따옴표가 붙어서 복사되는 것이 싫다면 번거롭더라도 사용자가 약간의 작업을 해야 한다.

 

큰따옴표 없이 셀 내용 복사하기

1. 셀 편집 상태에서 복사

 복사하려는 셀에서 [F2]혹은 더블 클릭을 하여 셀 내용의 편집이 가능한 상태에서 내용을 전에 선택하여 복사하면 큰따옴표가 붙지 않는다.

 단일 셀을 복사하는 것이라면 이 방법도 나쁘지 않다.

 

2. 워드패드 사용.

 셀 내용을 복사해서 붙여 넣는 경우 메모장이나 워드 등 대부분의 문서 프로그램이나 입력 가능한 공간에는 큰따옴표가 포함되어 붙여 넣기가 되지만 워드패드에 붙여넣는 경우에는 큰따옴표 없이 붙여넣기가 된다.

 이런 특성을 이용하여 셀의 내용을 워드패드에 붙여 넣은 뒤 워드패드의 내용을 다시 복사하여 사용하면 된다.

 (워드 패드는 시작에서 워드패드를 검색하면 쉽게 찾을 수 있다.)

워드패드 실행

3. 매크로.

 작업에 따라서 워드패드에 붙여 넣기 후 다시 복사하는 것이 힘들 다면 매크로를 등록하고 사용하는 것도 좋다.

 다만 매크로 등록에 자잘한 작업이 많기 때문에 자주 사용하지 않는다면 굳이 매크로를 사용할 필요는 없다.

 

 [Alt + F11]을 눌러 Visual Basic Editor을 실행.

 우선 상단 메뉴에서 [도구 - 참조]를 클릭하고 창이 나타나면 [Microsoft Forms 2.0 Object Library]를 체크하고 [확인] 버튼을 클릭하자.

 (목록에 없다면 [찾아보기]를 클릭하고 c:\windows\system32 폴더에 있는 FM20.DLL 파일을 추가하면 된다.)

VBA 라이브러리 추가

 라이브러리를 추가했다면 상단의 메뉴에서 [삽입 - 모듈]을 클릭하고 창이 나타나면 아래의 코드를 붙여 넣자.

 (코드 출처 : stackoverflow.com)

Option Explicit
Sub CopyCellsWithoutAddingQuotes()

' -- Attach Microsoft Forms 2.0 Library: tools\references\Browse\FM20.DLL
' -- NOTE: You may have to temporarily insert a UserForm into your VBAProject for it to show up.
' -- Then set a Keyboard Shortcut to the "CopyCellsWithoutAddingQuotes" Macro (i.e. Crtl+E)

Dim clibboardFieldDelimiter As String
Dim clibboardLineDelimiter As String
Dim row As Range
Dim cell As Range
Dim cellValueText As String
Dim clipboardText As String
Dim isFirstRow As Boolean
Dim isFirstCellOfRow As Boolean
Dim dataObj As New dataObject

clibboardFieldDelimiter = Chr(9)
clibboardLineDelimiter = Chr(13) + Chr(10)
isFirstRow = True
isFirstCellOfRow = True

For Each row In Selection.Rows

    If Not isFirstRow Then
        clipboardText = clipboardText + clibboardLineDelimiter
    End If

    For Each cell In row.Cells

        If IsEmpty(cell.Value) Then

            cellValueText = ""

        ElseIf IsNumeric(cell.Value) Then

            cellValueText = LTrim(Str(cell.Value))

        Else

            cellValueText = cell.Value

        End If ' -- Else Non-empty Non-numeric

        If isFirstCellOfRow Then

            clipboardText = clipboardText + cellValueText
            isFirstCellOfRow = False

        Else ' -- Not (isFirstCellOfRow)

            clipboardText = clipboardText + clibboardFieldDelimiter + cellValueText

        End If ' -- Else Not (isFirstCellOfRow)

    Next cell

    isFirstRow = False
    isFirstCellOfRow = True

Next row

clipboardText = clipboardText + clibboardLineDelimiter

dataObj.SetText (clipboardText)
dataObj.PutInClipboard

End Sub

모듈 코드 작성

 코드를 붙여 넣었다면 이제 다시 엑셀로 돌아와 복사할 셀을 선택하고 [Alt + F8]을 누르자.

 매크로 창이 나타나면 만든 매크로를 선택하고 [실행] 버튼을 클릭하여 셀의 내용을 복사할 수 있다.

 (복사할 때마다 매크로를 실행하는 것이 귀찮다면 [옵션]을 클릭하고 단축키를 지정해주면 된다.)

엑셀 메크로 실행

 매크로를 통해 복사한 내용을 붙여 넣어 보면 큰따옴표 없는 것을 확인할 수 있을 것이다.

 

그 외 내용

 단일 셀이라면 편집 상태에서 복사하는 것이 편하고 복수 셀이라고 하면 워드패드를 이용하면 무난하기 때문에 매크로는 많은 셀을 복사하는 작업을 자주 하는 경우에나 만들어 사용하는 것이 좋지 않을까 한다.