Vba: 문자열의 문자를 바꾸는 방법


VBA에서 바꾸기() 메서드를 사용하여 문자열의 문자를 바꿀 수 있습니다.

이 방법은 다음 기본 구문을 사용합니다.

바꾸기(식, 찾기, 바꾸기, 시작, 계산)

금:

  • 표현식 : 문자를 바꾸려는 문자열
  • find : 찾을 문자열
  • replacement : 대체용으로 사용할 문자열
  • start ( 선택 사항 ) : 검색할 문자열의 시작 위치
  • count( 선택 사항 ) : 수행할 교체 횟수

다음 예에서는 Excel에서 다음 문자열 목록을 사용하여 실제로 이 방법을 사용하는 방법을 보여줍니다.

예제 1: VBA를 사용하여 문자열의 모든 문자 바꾸기(대소문자 구분)

각 문자열에서 “this”를 “THAT”으로 바꾸고 싶다고 가정해 보겠습니다.

이를 위해 다음 매크로를 생성할 수 있습니다:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(Range(" A " & i), " this ", " THAT ")
Next i
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

B열에는 A열의 각 문자열이 표시되며, “this”는 각각 “THAT”으로 대체됩니다.

이 교체는 대소문자를 구분합니다.

즉, “this”의 각 항목은 대체되지만 “this”의 각 항목은 그대로 유지됩니다.

예제 2: VBA를 사용하여 문자열의 모든 문자 바꾸기(대소문자 구분 안 함)

각 문자열에서 “this”(대소문자 관계 없이)를 “THAT”로 바꾸고 싶다고 가정해 보겠습니다.

이를 위해 다음 매크로를 생성할 수 있습니다:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ")
Next i
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

B열에는 A열의 각 문자열이 표시되며, “this”는 각각 “THAT”으로 대체됩니다.

이 교체는 대소문자를 구분하지 않습니다 .

즉, “this”가 나타날 때마다(대문자 사용 여부에 관계없이) 대체됩니다.

각 문자열에서 “this”를 검색하기 전에 먼저 A열의 각 문자열을 소문자로 변환하는 LCase 메서드를 사용하여 대소문자를 구분하지 않는 대체를 수행할 수 있었습니다.

예 3: VBA를 사용하여 문자열에서 처음 N개의 문자 바꾸기

각 문자열에서 처음 나타나는 “this”(대소문자 관계 없이)만 “THAT”로 바꾸고 싶다고 가정해 보겠습니다.

이를 위해 다음 매크로를 생성할 수 있습니다:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ", Count:=1)
Next i
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

B열에는 A열의 각 문자열이 표시되며, “this”의 첫 번째 항목만 “THAT”으로 대체됩니다.

Count:=1을 사용하여 특정 문자열의 첫 번째 항목만 바꾸었지만 1을 특정 문자열의 처음 n 개 항목을 바꾸려는 값으로 바꿀 수 있습니다.

참고 : VBA 바꾸기 메서드에 대한 전체 설명서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 자습서에서는 VBA를 사용하여 다른 일반적인 작업을 수행하는 방법을 설명합니다.

VBA: 문자열에서 문자 발생 횟수를 계산하는 방법
VBA:문자열에 다른 문자열이 포함되어 있는지 확인하는 방법
VBA: 특정 텍스트가 포함된 셀 수를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다