※ 정규식 사용하는 방법
- Excel - VBA 편집기를 엽니다.
- 상단 메뉴에서 "도구" - "참조"를 클릭합니다.
- "참조" 대화상자가 나타나면, 목록에서 "Microsoft VBScript Regular Expressions 5.5"를 찾아 체크합니다.
- 확인 버튼을 클릭하여 참조를 적용합니다.
010-0000-0000 / 01000000000 <= 이 두 형태로 되어있는 문자열을 다른 문자로 바꾸는 코드
Sub ChangePhoneNum()
Dim ColumnToCheck As Range
Dim Cell As Range
Dim RegPhone As Object ' RegExp 객체 변수 선언
Set RegPhone = New RegExp
RegPhone.Pattern = "(\d{3}-?\d{4}-?\d{4})"
' 변경할 휴대폰 번호 입력
Set ColumnToCheck = ThisWorkbook.Worksheets("Sheet 이름").Range("F:F")
' 휴대폰 번호 변경
' 해당 열의 각 셀을 확인하고 휴대폰 번호 변경
For Each Cell In ColumnToCheck
Dim Matches As Object ' 매치된 결과를 저장할 변수
Set Matches = RegPhone.Execute(Cell.Value)
If Matches.Count > 0 Then
Cell.Value = RegPhone.Replace(Cell.Value, "바꿀내용")
End If
Next Cell
End Sub
As Range와 As Object 차이
- As Range : Excel의 범위를 나타내는 데이터 형식입니다.
Range 객체는 셀, 행, 열 또는 여러 셀로 구성된 범위를 나타내며, VBA에서 Excel의 데이터를 조작하거나 처리할 때 주로 사용됩니다. 예를 들어, 특정 셀의 값을 읽거나 변경하거나, 특정 범위에 대한 작업을 수행할 때 Range 데이터 형식을 사용합니다.
- As Object : 모든 종류의 객체를 나타내는 데이터 형식입니다.
Object 데이터 형식은 VBA에서 가장 일반적으로 사용되는 데이터 형식 중 하나로, 모든 종류의 개체를 변수에 할당할 수 있습니다. 예를 들어, Excel의 Range, Worksheet, Workbook과 같은 Excel 객체뿐만 아니라 다른 COM 객체, 사용자 지정 클래스 등을 처리할 때 Object 데이터 형식을 사용합니다.
따라서, As Range은 Excel 범위에 특화된 데이터 형식이고, As Object는 모든 종류의 객체를 다룰 수 있는 일반적인 데이터 형식입니다. 선택은 변수가 어떤 유형의 데이터를 저장하고 처리해야 하는지에 따라 달라집니다.
'코딩' 카테고리의 다른 글
[VBA] 특정 셀의 id에 해당하는 정보를 다른 시트에서 필터링 (1) | 2024.07.08 |
---|---|
[VBA]엑셀(Excel) 특정 셀의 행의 값들 기반으로 다른 시트에서 자동 필터링하기 (0) | 2023.05.04 |