엑셀 범위 초기화 :: ClearRange 명령문 사용법 총정리
엑셀 ClearRange 명령문 목차 바로가기
요약
엑셀 ClearRange 명령문은 엑셀의 특정 범위의 값을 초기화하는 명령문입니다.
명령문 구문
ClearRange 범위1, 범위2, ...
사용된 인수 및 변수 알아보기
인수 | 설명 |
범위 [Variant, 선택인수] |
값을 초기화 할 범위입니다. 범위(Range)로 직접 입력하거나, 범위를 문자로 입력할 수 있습니다. 범위 기본값은 "초기화범위" 입니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] ClearRange 명령문예제파일
상세 설명
엑셀 ClearRange 명령문은 엑셀 특정 범위의 값을 초기화하는 명령문입니다. 범위의 셀 병합여부에 상관없이 값을 초기화 할 수 있습니다. 범위의 기본값은 "초기화범위" 입니다. 따라서 ClearRnage 명령문을 인수 없이 사용할 경우, 값을 초기화 할 대상 범위를 "초기화범위" 라는 이름정의범위로 추가한 뒤 명령문을 사용합니다.
값을 지울 범위를 '초기화범위'라고 지정한 뒤 명령문을 실행합니다. 실전 사용 예제
- "초기화범위"라는 이름정의범위 값을 초기화
ClearRange '"초기화범위"라는 이름정의범위의 값을 초기화합니다.
- "직원명부"라는 시트의 A1:A10 범위를 초기화
ClearRange ThisWorkBook.WorkSheets("직원명부").Range("A1:A10") '직원명부 시트의 "A1:A10" 범위 값을 초기화합니다.
- 여러 범위를 동시에 초기화
ClearRange "초기화범위", Range("A1:A10"), Range("범위1") '초기화범위, A1:A10 범위 등 여러 범위 값을 초기화합니다.
엑셀 범위 초기화, ClearRange 명령문 동작원리
ClearRange 명령문 전체 코드
Sub ClearRange(ParamArray Rngs() As Variant) '############################################################### '오빠두엑셀 VBA 사용자지정함수 ([https://www.oppadu.com](https://www.oppadu.com/)) '▶ ClearRange 함수 '▶ 지정한 범위 값을 초기화합니다. 범위를 직접 지정하거나 범위를 문자로 입력할 수 있습니다. '▶ 인수 설명 '_____________Rngs : 값을 초기화할 범위입니다. '▶ 사용 예제 'ClearRange "범위1", Range("A1:A10") '############################################################### Dim Rng As Variant: Dim Rs As Variant Dim r As Range: Dim a As Range: Dim v As Variant: Dim vs As Range Dim lngType As Long Application.ScreenUpdating = False Set r = Selection If IsMissing(Rngs) Then Rngs(0) = "초기화범위" If UBound(Rngs()) > 0 Then ClearArrRngs: For Each Rng In Rngs If IsObject(Rng) Then lngType = 0 For Each a In Rng GoTo ClearRng ClearNextRng: Next Else If IsArray(Rng) Then lngType = 1 For Each v In Rng If IsObject(v) Then a = v Else Set a = Range(v) GoTo ClearRng ClearNextMixedRng: Next Else lngType = 4 Set a = Range(Rng) GoTo ClearRng ClearNextMixedStr: End If End If Next Else If IsObject(Rngs(0)) Then Set a = Rngs(0) lngType = 3 GoTo ClearRng Else If IsArray(Rngs) Then GoTo ClearArrRngs If InStr(1, ",", CStr(Rngs(0))) > 0 Then lngType = 2 vs = Split(CStr(Rngs(0)), ",") For Each Rng In vs Set a = Range(Trim(Rng)) GoTo ClearRng ClearNextStr: Next Else Set a = Range(CStr(Rngs(0))) lngType = 3 GoTo ClearRng End If End If End If GoTo Finally ClearRng: a.Parent.Activate a.Select Selection.ClearContents If lngType = 0 Then GoTo ClearNextRng If lngType = 1 Then GoTo ClearNextMixedRng If lngType = 2 Then GoTo ClearNextStr If lngType = 3 Then GoTo Finally If lngType = 4 Then GoTo ClearNextMixedStr Finally: r.Parent.Activate r.Select Application.ScreenUpdating = True End Sub
명령문 동작원리 단계별 알아보기
- 명령문에 사용할 변수를 선언합니다.
Dim Rng As Variant: Dim Rs As Variant Dim r As Range: Dim a As Range: Dim v As Variant: Dim vs As Range Dim lngType As Long
- 화면 업데이트를 중단하여 명령문 속도를 개선합니다.
Application.ScreenUpdating = False '... Application.ScreenUpdating = True
- 명령문에 지정한 인수가 없을 경우 기본값으로 "초기화범위"를 지정합니다.
Set r = Selection If IsMissing(Rngs) Then Rngs(0) = "초기화범위"
- 인수로 1개 이상이 입력될 경우, 여러 인수를 돌아가면서 범위를 초기화합니다.
If UBound(Rngs()) > 0 Then ClearArrRngs: For Each Rng In Rngs If IsObject(Rng) Then lngType = 0 For Each a In Rng GoTo ClearRng ClearNextRng: Next Else If IsArray(Rng) Then lngType = 1 For Each v In Rng If IsObject(v) Then a = v Else Set a = Range(v) GoTo ClearRng ClearNextMixedRng: Next Else lngType = 4 Set a = Range(Rng) GoTo ClearRng ClearNextMixedStr: End If End If Next Else
- 인수로 1개가 입력되었고, 각 범위가 쉼표로 구분되어 있을 경우 범위를 쉼표 기준으로 분리합니다.
If IsObject(Rngs(0)) Then Set a = Rngs(0) lngType = 3 GoTo ClearRng Else If IsArray(Rngs) Then GoTo ClearArrRngs If InStr(1, ",", CStr(Rngs(0))) > 0 Then lngType = 2 vs = Split(CStr(Rngs(0)), ",") For Each Rng In vs Set a = Range(Trim(Rng)) GoTo ClearRng ClearNextStr: Next Else Set a = Range(CStr(Rngs(0))) lngType = 3 GoTo ClearRng End If End If End If GoTo Finally
- 범위를 초기화한 뒤, 인수 입력 조건에 따라 다음 단계로 넘어갑니다.
ClearRng: a.Parent.Activate a.Select Selection.ClearContents If lngType = 0 Then GoTo ClearNextRng If lngType = 1 Then GoTo ClearNextMixedRng If lngType = 2 Then GoTo ClearNextStr If lngType = 3 Then GoTo Finally If lngType = 4 Then GoTo ClearNextMixedStr
- 명령문을 종료합니다.
Finally: r.Parent.Activate r.Select End Sub
- "초기화범위"라는 이름정의범위 값을 초기화