Range 개체

Clear 메서드

노만e 2025. 3. 10. 19:36

엑셀 VBA에서 Clear 메서드는 셀 또는 범위의 데이터, 서식, 메모(댓글) 등을 제거할 때 사용됩니다.

즉, 특정 범위를 비우는 기능으로, Delete와 다르게 셀 자체는 삭제되지 않고 내용만 초기화됩니다.


1. 기본 Clear 메서드

Range("A1:A10").Clear

📌 A1:A10 범위의 모든 데이터, 서식, 메모(댓글), 유효성 검사 등을 제거

📌 셀은 그대로 남아 있으며, 기본 서식으로 초기화됨


2. 특정 요소만 제거 (ClearContents, ClearFormats 등)

메서드
설명
Clear
모든 데이터, 서식, 메모 삭제
ClearContents
값만 삭제 (서식 유지)
ClearFormats
서식만 삭제 (값 유지)
ClearComments
메모(댓글)만 삭제
ClearHyperlinks
하이퍼링크만 삭제
ClearNotes
메모(노트)만 삭제
ClearOutline
그룹화(아웃라인)만 삭제
ClearValidation
데이터 유효성 검사만 삭제

3. 값만 삭제 (ClearContents)

Sub 값만_삭제()
Range("A1:A10").ClearContents
End Sub

📌 A1:A10의 값만 삭제 (서식, 메모는 유지됨)

📌 Delete와 다르게 셀은 이동하지 않음


4. 서식만 삭제 (ClearFormats)

Sub 서식만_삭제()
Range("A1:A10").ClearFormats
End Sub

📌 A1:A10의 배경색, 글꼴, 테두리 등의 서식만 삭제 (값과 수식은 유지됨)


5. 메모(댓글)만 삭제 (ClearComments)

Sub 메모만_삭제()
Range("A1:A10").ClearComments
End Sub

📌 A1:A10의 메모(댓글)만 삭제


6. 하이퍼링크만 삭제 (ClearHyperlinks)

Sub 하이퍼링크_삭제()
Range("A1:A10").ClearHyperlinks
End Sub

📌 A1:A10의 하이퍼링크만 제거 (값과 서식은 유지됨)

📌 텍스트는 그대로 남아 있지만, 클릭하면 이동하지 않음


7. 데이터 유효성 검사 삭제 (ClearValidation)

Sub 유효성검사_삭제()
Range("A1:A10").ClearValidation
End Sub

📌 A1:A10에 적용된 유효성 검사(예: 목록, 숫자 범위 등)만 삭제


8. 아웃라인(그룹화) 제거 (ClearOutline)

Sub 아웃라인_삭제()
Range("A1:A10").ClearOutline
End Sub

📌 A1:A10의 그룹화(아웃라인)만 삭제


9. 워크시트 전체 초기화

📌 전체 데이터 삭제

Sub 전체_데이터_삭제()
Cells.Clear
End Sub

📌 현재 시트의 모든 데이터, 서식, 메모 삭제


📌 전체 값만 삭제 (ClearContents)

Sub 전체_값만_삭제()
Cells.ClearContents
End Sub

📌 현재 시트의 값만 삭제 (서식 유지)


📌 전체 서식만 삭제 (ClearFormats)

Sub 전체_서식만_삭제()
Cells.ClearFormats
End Sub

📌 현재 시트의 서식만 삭제 (값과 수식 유지)


📌 시트 전체 정리 (값 + 서식 + 메모 + 유효성 검사 삭제)

Sub 시트_완전초기화()
Cells.Clear
Cells.ClearComments
Cells.ClearHyperlinks
Cells.ClearValidation
End Sub

📌 현재 시트의 모든 데이터를 초기화하고, 메모, 하이퍼링크, 유효성 검사까지 삭제


10. 특정 조건을 만족하는 셀만 삭제

📌 빈 셀만 삭제

Sub 빈셀만_삭제()
Dim rng As Range
Set rng = Range("A1:A100").SpecialCells(xlCellTypeBlanks)
rng.ClearContents
End Sub

📌 A1:A100 범위 내 빈 셀의 값만 삭제


📌 특정 값이 포함된 셀만 삭제

Sub 특정값_삭제()
Dim rng As Range, cell As Range
Set rng = Range("A1:A100")
For Each cell In rng
If cell.Value = "삭제" Then
cell.ClearContents
End If
Next cell
End Sub

📌 A1:A100에서 값이 "삭제"인 셀만 삭제


📝 정리

기능
VBA 코드
모든 데이터, 서식 삭제
Range("A1:A10").Clear
값만 삭제 (서식 유지)
Range("A1:A10").ClearContents
서식만 삭제 (값 유지)
Range("A1:A10").ClearFormats
메모(댓글)만 삭제
Range("A1:A10").ClearComments
하이퍼링크만 삭제
Range("A1:A10").ClearHyperlinks
데이터 유효성 검사 삭제
Range("A1:A10").ClearValidation
아웃라인(그룹화) 삭제
Range("A1:A10").ClearOutline
워크시트 전체 데이터 삭제
Cells.Clear
워크시트 전체 값만 삭제
Cells.ClearContents
워크시트 전체 서식만 삭제
Cells.ClearFormats
빈 셀의 값만 삭제
Range("A1:A100").SpecialCells(xlCellTypeBlanks).ClearContents
특정 값이 포함된 셀만 삭제
If cell.Value = "삭제" Then cell.ClearContents

🔥 VBA의 Clear를 활용하면 데이터를 빠르고 효과적으로 정리할 수 있습니다! 🚀