위와 같은 지식인 질문에 대한 답변입니다.

눈에 잘 보이지 않지만 텍스트 끝에 다음줄로 넘어가는 개행문자가 있습니다.

개행문자까지 복사되는 걸 방지하는 손쉬운 방법은

텍스트를 드래그할 때 앞에서부터 하지 않고 뒤에서부터 드래그하는 방법입니다.

아래 그림을 자세히 보시면 앞에서부터 드래그한 경우는 보이지 않는 문자가 하나더 선택이 되고

뒤에서부터 드래그한 경우 개행문자 없이 선택되는 것을 알 수 있습니다.

Sub test()

    Dim tr As TextRange
    
    Set tr = ActiveWindow.Selection.TextRange
    
    Debug.Print Asc(Right(tr, 1))
    '11: 개행문자
    '63: 물음표
End Sub

 

위와 같은 VBA로 테스트해보아도

앞에서부터 드래그한 경우 맨 뒤에 보이지 않는 ASC 11번 개행문자까지 선택되지만

뒤에서부터 드래그한 경우 개행문자 없이 순수하게 텍스트만 선택이 되는 것을 확인할 수 있습니다.

 

참고: Carriage Return 과 Line Feed

 

개발 용어 : 캐리지 리턴(CR), 라인 피드 (LF) 알아보기

캐리지 리턴(CR)과 라인 피드(LF)란? 프로그래밍을 하다보면 \n으로 되어있는 문자를 만나게 됩니다. 보통 줄내림이라는 뜻인데 윈도우에서 이것저것 하다보면 \n이 아닌 \r\n도 만날 때가 있습니다

jw910911.tistory.com

 

관련 글 추가(2023.06.14.):

 

뒤에서부터 드래그해도 잘 안되는 상황이면 아래 글을 참고하세요.

 

맨 뒤에 빈칸이 선택되는데 정확히 말하면 빈칸이라기보다는 한 줄 내려가는 표시 즉, 개행문자입니다.

텍스트를 복사해서 붙일 때 개행문자까지 복사가 되어야 다음줄로 텍스트가 내려가게 되므로

문장 끝의 개행문자 복사를 방지하면 안됩니다.

단어를 선택할 때는 빈칸(개행문자) 없이 선택이 가능합니다.

하지만 해당 행의 처음부터 드래그하거나 오른쪽으로 멀리까지 드래그하면

빈칸(개행문자)까지 선택이 됩니다.

개행문자까지 자동으로 선택되는 것을 방지하려면

행의 끝에서 줄바꿈을 할 때 엔터(아스키코드 13번) 대신

Shift-Enter(아스키코드 11번)로 줄을 바꾸면

자동으로 빈 줄바꿈 문자까지 복사되는 것을 피할 수는 있습니다.

또는 드래그를 할 때 선택할 첫번째 글자의 가운데부터 천천히 드래그하면 개행문자 제외하고 선택에 성공할 확률이 높아집니다.

가장 확실한 방법은 키보드를 이용하면 정확하게 선택이 가능합니다.

Shift+오른쪽/왼쪽 화살표로 선택하시면 개행문자를 제외하고 선택할 수 있습니다.

Ctrl키까지 누르면 다중 선택도 가능합니다.