• 최초 작성일: 2001-06-26
  • 최종 수정일: 2026-09-30
  • 조회수: 9 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 텍스트 나누기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

한 셀안에 여러 줄을 입력하고자 할 때 Alt + Enter 키를 누른다는 사실은 다들 아실테고... 이런 질문을 하신 분이 있군요.

엑셀 초보자 입니다.
하나의 셀에 Alt키와 Enter키를 사용하여 강제로 줄바꿈 처리를 하였는데
이렇게 입력한 것을 텍스트 나누기 하고 싶습니다.
'데이터' 메뉴에 있는 '텍스트 나누기'를 사용해도 되지 않던데
도움을 주실 수 없으신지요?

이 많은 걸 손으로 할 수도 없고... TT 고수님 Help me!!!!!

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

텍스트 나누기

핵심 요약: 줄바꿈 셀 나누기

강제 줄바꿈은 Chr(10)으로 인식되므로 TextToColumns의 otherchar에 Chr(10)을 지정하면 줄바꿈으로 구분된 내용을 여러 셀로 나눌 수 있습니다.

  • 1단계: Application.InputBox(Type:=8)로 대상 셀을 선택받습니다.
  • 2단계: CurrentRegion으로 대상 영역을 지정합니다.
  • 3단계: TextToColumns에 otherchar:=Chr(10)을 지정하고 행 높이를 자동 조정합니다.

Step 1: 줄바꿈이 들어간 셀 나누기

Alt + Enter 키를 사용하여 강제 줄바꿈을 한 경우, 질문하신 것처럼 '텍스트 나누기'가 되지 않더군요. 쉬운 방법은 떠오르지 않고... 간단하게 VBA로 코딩을 해 보았습니다.

A열 (Alt + Enter로 줄바꿈한 셀)
강동 / 강서 / 강남 / 강북
서울 / 부산 / 대구 / 대전 / 광주 / 제주
1 / 2 / 3 / 4 / 5
가 / 나 / 다 / 라 / 마 / 바 / 사 / 아

(각 셀 안에서 항목마다 줄이 바뀌어 있습니다. 표에서는 슬래시로 구분해 나타냈습니다.)

코드를 보면... 언제나 처럼 아주 간단하지요? ^^

Step 2: MakeOneRow 프로시저

Sub MakeOneRow()
    Dim rngTarget As Range
    On Error GoTo ET
    Set rngTarget = Application.InputBox("대상 셀을 하나만 선택하세요", "대상 셀 선택//By Exceller", Type:=8)
    '''변수를 선언한 다음, InputBox 메서드를 사용하여 사용자로부터 영역을 지정받습니다.
    '''InputBox 앞에 Application이 붙은 걸로 봐서... 그렇지요! 워크시트 함수를 가져다가 사용합니다.

    Set rngTarget = rngTarget.Cells(1).CurrentRegion
    '''만약에 에러가 발생하면 ET로 가서 실행하라는 에러 트래핑 구문을 추가하였습니다.
    '''사용자가 영역을 지정하지 않았을 경우나, Range 오브젝트가 아닌 다른 것을 지정했을 때
    '''등에 대비한 에러 트래핑 구문은 직접 만들어 보세요.

    With rngTarget
        .TextToColumns _
            Destination:=rngTarget, DataType:=xlDelimited, _
            textqualifier:=xlDoubleQuote, consecutivedelimiter:=False, _
            Tab:=False, semicolon:=False, comma:=False, Space:=False, _
            other:=True, otherchar:=Chr(10)
        .CurrentRegion.EntireRow.AutoFit
        '''이 부분이 오늘 강좌의 핵심입니다. 처음 보면 엄청 길어보입니다만... 자꾸 봐도 길기는
        '''길군요. ^^ 이 긴 것을 Exceller는 외워서 적었을까요? 당연히 아니겠지요? 매크로 기록기를
        '''켜 놓고 코드를 생성한 다음 약간 수정해 주었습니다.
        '''이 코드가 도대체 먼 소린지 이해가 안되는 분은 '데이터-텍스트 나누기' 메뉴를 한번
        '''사용해 보세요. 그러면 금방 아시게 될 것입니다. 중요한 것은 맨 마지막에 있는,
        '''otherchar:=Chr(10) ← 요 부분입니다.
        '''즉 우리가 Alt + Enter 키를 탁 치면, 엑셀은 이것을 Char(10)으로 인식합니다.

    End With
    MsgBox "작업이 끝났습니다", , "작업 종료//By Exceller"
    Exit Sub
ET:
    MsgBox "대상영역을 잘못 선택하셨습니다. 확인하세요!", vbInformation, "선택 오류//By Exceller"
End Sub

마무리

황금이 소나기처럼 쏟아질지라도
사람의 욕망을 다 채울 수는 없다.
욕망에는 짧은 쾌락에
많은 고통이 따른다.

'법구경'에 이런 구절이 있더군요. 그렇다고 Exceller가 불교도는 아닙니다만... "행복이란 원하는 것을 얼마나 가지고 있느냐가 아니라 불필요한 것으로부터 얼마나 자유로운 상태에 있는가에 있다"는 어느 고승의 말씀이 생각납니다.

왜 갑자기 이런 도사 비스무리한 생각을 하게 되었을까요? Exceller가 산에 가서 머리 깎을... 아니 머리깎고 산에 갈래나? ^^

다음 시간에...

정리 — 줄바꿈 셀 나누기 핵심

구분 사용한 코드 역할
범위 선택 Application.InputBox(…, Type:=8) 대상 셀 선택
영역 확장 rngTarget.Cells(1).CurrentRegion 연속 영역 지정
텍스트 나누기 .TextToColumns DataType:=xlDelimited 구분 기호로 나누기
구분 문자 other:=True, otherchar:=Chr(10) 줄바꿈 문자로 구분
행 높이 .EntireRow.AutoFit 행 높이 자동 조정

자주 묻는 질문 (FAQ)

Q1. Alt+Enter로 줄바꿈한 셀은 왜 텍스트 나누기가 안 되나요?

줄바꿈 문자(Chr(10))가 기본 구분 기호 목록에 없기 때문이며, 기타 구분 기호로 Chr(10)을 지정하면 나눌 수 있습니다.

Q2. 매크로 기록기로 만든 긴 TextToColumns 코드를 외워야 하나요?

외울 필요 없이 매크로 기록기로 코드를 만든 다음 필요한 부분만 수정하면 됩니다.

Q3. InputBox에서 Type:=8은 무슨 뜻인가요?

사용자가 워크시트에서 셀 범위를 선택해 Range 개체를 반환하도록 하는 옵션입니다.

마치며

Chr(10)만 구분 문자로 지정하면 줄바꿈이 들어간 셀도 텍스트 나누기로 간단히 나눌 수 있습니다.