본문 바로가기
Range object

[Range 개체] Areas속성

2023. 7. 10.

다중 영역 선택의 모든 범위를 나타내는 Areas 컬렉션을 반환합니다. 읽기 전용 속성입니다.

도움말을 번역해보면 다음과 같습니다.

단일 선택의 경우 Areas 속성은 하나의 개체(원래 Range 개체 자체) 를 포함하는 컬렉션을 반환합니다 .

다중 영역 선택의 경우 Areas 속성은 선택한 각 영역에 대해 하나의 객체를 포함하는 컬렉션을 반환합니다.

이해를 돕기 위해 간단한 샘플을 만들었습니다.

Sub AreasExample()
    Dim rng As Range
    Dim area As Range
    Dim areasCollection As Areas
    
    ' 단일 영역 선택
    Set rng = Range("A1:C3")
    Set areasCollection = rng.Areas
    
    Debug.Print "단일 영역 정보 출력"
    ' 각 영역에 대한 정보 출력
    For Each area In areasCollection
        Debug.Print "영역: " & area.Address
    Next area
    
    
    ' 다중 영역 선택
    Set rng = Range("A2:C5,E1:G3,F4:I6")
    Set areasCollection = rng.Areas
    
    Debug.Print "-------------------"
    Debug.Print "다중 영역 정보 출력"
    ' 각 영역에 대한 정보 출력
    For Each area In areasCollection
        Debug.Print "영역: " & area.Address
    Next area
End Sub

위 코드를 실행한 화면입니다.

아래 코드는 각 영역에 값을 출력합니다.

Sub AreasExample()
    Dim rng As Range
    Dim area As Range
    Dim areasCollection As Areas
    Dim values As Variant
    Dim i As Long
    
    ' 3개의 영역 선택
    Set rng = Range("A1:B3,A5:C7,A10:D13")
    Set areasCollection = rng.Areas
    
    ' 각 영역에 대한 값을 배열로 설정
    values = Array("취미로", "공부하는", "VBA")
    
    ' 각 영역에 값을 할당
    For i = 1 To areasCollection.Count
        areasCollection(i).Value2 = values(i - 1)
    Next i
End Sub

선택한 영역의 개수에 따라 다른 작업을 하는 코드입니다.

Sub AreasExample()
    
    Dim i As Long
    Dim numAreas As Long
    
    ' 선택한 영역의 개수 확인
    numAreas = Selection.Areas.Count
    
    ' 선택한 영역이 한 개일 때
    If numAreas = 1 Then
        ' 선택한 영역의 셀에 "Hello" 입력
        Selection.Value = "Hello"
        ' 선택한 영역이 여러 개일 때
    Else
        ' 선택한 각 영역의 셀에 번호를 입력
        For i = 1 To numAreas
            Selection.Areas(i).Value = i
        Next i
    End If
    
End Sub