메뉴
실무 위키VBA 코드ClearRange

ClearRange

Sub

지정한 범위의 값을 초기화하는 VBA 명령문입니다.

ClearRange 코드 미리보기
구문 ClearRange 범위1, 범위2, ...
인수구분 형식 설명
범위 선택 Variant
값을 초기화할 범위입니다. 기본값은 "초기화범위" 입니다.
범위(Range)로 직접 입력하거나, 범위를 문자로 입력할 수 있습니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · 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

활용 예제

이름정의범위 · 특정 시트 범위 초기화
ClearRange
'"초기화범위"라는 이름정의범위의 값을 초기화합니다.
ClearRange ThisWorkBook.WorkSheets("직원명부").Range("A1:A10")
'직원명부 시트의 "A1:A10" 범위 값을 초기화합니다.
여러 범위를 한 번에 초기화
ClearRange "초기화범위", Range("A1:A10"), Range("범위1")
'초기화범위, A1:A10 범위 등 여러 범위 값을 초기화합니다.

안내사항

인수 없이 실행하면 "초기화범위" 라는 이름정의범위의 값을 지우므로, 값을 지울 범위를 미리 "초기화범위"로 이름 정의해 두어야 합니다.
셀 병합 여부와 관계없이 값을 초기화합니다.
댓글 3
5 (3개 평가)
Jan.J
Jan.J 2023.02.14 17:49
강의 감사합니다. 좋은 참여입니다.
효댕
효댕 2023.06.21 09:26
덕분에 내용이 깔끔해졌습니다. 감사합니다:)
강민준🤗
강민준🤗 2024.08.11 12:04
좋은 자료 감사합니다.🙇‍♂️
스크랩 완료