Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 작은 따옴표, apostrophe 일괄적으로 삭제하는 방법

엑셀(Excel)/VBA
반응형

문자나 숫자 앞에 작은 따움표가 있으면 어떻게 될까요? 수식 입력줄에는 나타나지만 셀에 표시되지 않습니다. 작은 따움표는!@#$%^&*()~"',.? 등의 특수문자를 표시할 때만 사용하는 구분자이기 때문입니다. 작은 따움표의 또 다른 기능은 셀의 숫자 서식을 문자로 바꿉니다. 그래서 숫자와 관련된 수식을 적용해도 텍스트로 인식해서 정확한 결과값을 얻을 수 없습니다. 만약 숫자 계산과 관련된 데이터 앞에 작은 따움표가 있다면 모두 제거해야 합니다. 오늘은 VBA 매크로를 이용해서 삭제해 보겠습니다.

 

 

그림처럼 숫자 데이터 앞에 작은 따옴표가 있으면 텍스트로 인식하기 때문에 수식 계산이 안됩니다. 매크로를 이용해서 삭제해 보겠습니다.

엑셀 VBA 작은 따옴표, apostrophe 일괄적으로 삭제하는 방법

 

매크로 함수를 만들기 위해 개발 도구 탭 > 매크로 리본 메뉴를 클릭합니다

엑셀 VBA 작은 따옴표, apostrophe 일괄적으로 삭제하는 방법

 

매크로 팝업창에서 만들기 버튼을 눌러 함수를 만듭니다

엑셀 VBA 작은 따옴표, apostrophe 일괄적으로 삭제하는 방법

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 반복문 For Next 문 사용하기
엑셀 VBA Function Sub 프로시저의 차이점과 사용법 알아 보기
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기
엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법

 

 

 

 

함수에 다음과 같이 소스를 입력합니다. 소스 설명은 아래에서 하겠습니다

엑셀 VBA 작은 따옴표, apostrophe 일괄적으로 삭제하는 방법

 

 

먼저 선택한 영역에서 apostrophe 를 판단하기 위해서는 영역의 속성 값 중에서 Range.PrefixCharacter 는 셀의 첫 글자를 리턴합니다. 그래서 apostrophe 인지 아닌지 비교할 수 있습니다.

If rng.PrefixCharacter = "'" Then

 

다음은 apostrophe 셀일 경우 값을 임시 변수에 담았다가 다시 셀에 붙여 넣습니다. 그러면 apostrophe 사라진 값만 들어 갑니다. 임시 변수에 담을 때 apostrophe 가 사라지기 때문입니다.

temp = rng.Value
rng.Value = temp

 

전체 소스는 다음과 같습니다. 영역을 선택하고 매크로를 실행해 보세요. apostrophe 를 한번에 삭제할 수 있습니다.

Sub deleteApostrophe()
 
    Dim rng As Range
    Dim temp As String
       
    '// 선택한 영역에서 Apostrophe 삭제
    For Each rng In Selection
        If rng.PrefixCharacter = "'" Then
            temp = rng.Value
            rng.Value = temp
        End If
    Next rng
 
End Sub

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 반복문 For Next 문 사용하기
엑셀 VBA Function Sub 프로시저의 차이점과 사용법 알아 보기
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기
엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법
반응형
Posted by 녹두장군1
,