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: 특정 텍스트가 포함된 셀 수를 계산하는 방법