Range 개체

Range 개체

노만e 2025. 3. 12. 06:34

Range 개체는 엑셀 VBA에서 셀 또는 셀 범위를 조작하는 가장 중요한 개체 중 하나입니다. Range 개체를 사용하여 값을 가져오거나 설정할 수 있으며, 서식 변경, 복사/붙여넣기, 수식 입력 등의 다양한 작업을 수행할 수 있습니다.


1. 기본 사용법

✅ 특정 셀 지정

Range("A1").Value = "Hello" ' A1 셀에 "Hello" 입력

또는 Cells 개체를 사용할 수도 있습니다.

Cells(1, 1).Value = "Hello" ' A1과 동일한 표현 (행, 열)


2. 여러 개의 셀 선택

✅ 범위 선택

Range("A1:C10").Value = "Hi" ' A1부터 C10까지 "Hi" 입력

Range("A1“,”C10").Value = "Hi" ' A1부터 C10까지 "Hi" 입력

Range(Cells(1, "A"), Cells(10, "C")).Value = "Hi" ' A1부터 C10까지 "Hi" 입력

[A1:C10].Value = "Hi" ' A1부터 C10까지 "Hi" 입력

Range("A1, C1, E1").Value = "Hello" ' A1, C1, E1에 "Hello" 입력


3. Range 속성과 메서드

✅ 주요 속성(Properties)

속성
설명
예제
Value
셀 값을 가져오거나 설정
Range("A1").Value = 100
Formula
수식 입력
Range("A1").Formula = "=SUM(B1:B5)"
Interior.Color
배경 색상 변경
Range("A1").Interior.Color = RGB(255,0,0) (빨강)
Font.Bold
글씨 굵게
Range("A1").Font.Bold = True
Address
셀 주소 반환
MsgBox Range("A1").Address

✅ 주요 메서드(Methods)

메서드
설명
예제
Select
범위 선택
Range("A1:B2").Select
Copy
복사
Range("A1").Copy Range("B1")
ClearContents
내용만 지우기
Range("A1:B2").ClearContents
Clear
모든 서식 및 내용 삭제
Range("A1:B2").Clear
Resize
크기 조정
Range("A1").Resize(2,3).Value = "Data"
Offset
위치 이동
Range("A1").Offset(1,1).Value = "Moved"

4. Range 개체 활용 예제

📌 1) 특정 범위에 값 입력하기

Sub 입력()
Range("A1:A5").Value = 100 ' A1부터 A5까지 100 입력
End Sub

📌 2) 특정 범위 복사 & 붙여넣기

Sub 복사_붙여넣기()
Range("A1:A5").Copy Destination:=Range("B1:B5")
End Sub

📌 3) 조건에 따라 값 변경하기

Sub 값_변경()
Dim rng As Range
For Each rng In Range("A1:A10")
If rng.Value > 50 Then
rng.Font.Bold = True ' 50보다 크면 굵게 표시
End If
Next rng
End Sub

5. 셀 범위 동적 지정 (Last Row 사용)

Sub 마지막행_찾기()
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row ' A열에서 마지막 값이 있는 행 찾기
MsgBox "마지막 데이터가 있는 행 번호: " & LastRow
End Sub

6. 특정 값 찾기

Sub 값_찾기()
Dim rng As Range
Set rng = Range("A1:A10").Find(What:="Apple", LookAt:=xlWhole)

If Not rng Is Nothing Then
MsgBox "Apple은 " & rng.Address & " 위치에 있습니다!"
Else
MsgBox "Apple을 찾을 수 없습니다."
End If
End Sub

7. 특정 값이 있는 행 숨기기

Sub 특정값_숨기기()
Dim rng As Range
For Each rng In Range("A1:A20")
If rng.Value = "숨기기" Then
rng.EntireRow.Hidden = True
End If
Next rng
End Sub

📝 정리

  • Range("A1") → 특정 셀 선택
  • Range("A1:B2") → 여러 개의 셀 선택
  • .Value, .Formula, .Interior.Color 등 속성 사용 가능
  • .Select, .Copy, .ClearContents 등의 메서드로 셀 조작
  • Offset, Resize 등으로 동적 범위 조정 가능

엑셀 VBA에서 Range 개체는 셀을 다룰 때 필수적인 요소이며, 위 개념을 잘 활용하면 효율적으로 매크로를 작성할 수 있습니다! 😊