Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA Range 객체 중 Areas 속성 사용하기

엑셀(Excel)/VBA

"Areas" 속성은 Excel VBA에서 Range 객체에서 사용되는 속성 중 하나입니다. Range 객체는 셀이나 셀 범위를 나타내는데, 내부에 "Areas" 속성은 각각의 셀 정보를 반환합니다. 또한 병합된 셀 영역을 여러 개로 분할한 부분 영역을 반환할 수도 있습니다. 다중 영역으로 분할되는 경우 주로 병합된 셀이나 테이블 등에서 활용하고 있습니다. 해당 부분 영역의 값을 읽거나 변경하고, 서식을 지정하거나 계산 등의 작업을 수행할 수 있습니다.

 

 

하나의 영역에 값 합치기

 

Range 가 지정한 영역은 하나입니다. 여기에 각 셀을 반복문으로 돌면서 값을 하나씩 합치지 않고 WorksheetFunction.Sum() 함수로 Range 로 지정한 Area 영역의 모든 순자를 한번에 합칠 수 있습니다.

 

Sub CalculateSumInMergedCells()
    Dim mergedRange As Range
    Dim area As Range
   
    ' 병합된 셀 범위 설정
    Set mergedRange = Worksheets("Sheet2").Range("B2:C3")
   
    For Each area In mergedRange.Areas
        ' 각 부분 영역의 합계 계산 및 출력
        Dim areaSum As Double
        areaSum = Application.WorksheetFunction.Sum(area)
        MsgBox "Sum of Area: " & areaSum
    Next area
End Sub

 

 

이번에는 위와 달리 Range 함수에서 두 개의 영역을 지정했습니다. 이 경우 Areas 2개의 가집니다. 각각의 영역에 대한 값을 별도로 계산해서 팝업을 띄우는 소스입니다.

 

Sub CalculateSumInMergedCells()
    Dim mergedRange As Range
    Dim area As Range
   
    ' 병합된 셀 범위 설정(두 개의 영역)
    Set mergedRange = Worksheets("Sheet2").Range("B2:C3, B6:C7")
   
    For Each area In mergedRange.Areas
        ' 각 부분 영역의 합계 계산 및 출력
        Dim areaSum As Double
        areaSum = Application.WorksheetFunction.Sum(area)
        MsgBox "Sum of Area: " & areaSum
    Next area
End Sub

 

결과는 아래와 같습니다. 두 번의 For 반복문을 통해 두 개의 팝업에 합산한 결과값을 띄웠습니다.

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 Excel VBA 개발을 위한 개발 도구 추가하기
엑셀 VBA 참조하는 여러가지 방법
엑셀 VBA 개발할 로그 출력하는 방법
엑셀 VBA 함수 만들어서 매크로와 연결하기
셀 VBA 워크시트, 선택되었을 실행되는 이벤트 함수 구현하기

 



 

서식 지정하기

 

Areas 속성은 함수를 적용할 수 있을 뿐만 아니라 서식도 한번에 적용 가능합니다. 지정한 Range 영역에 속성을 적용할 수 있기 때문에 아주 편리합니다.

Sub FormatMergedCellAreas()
    Dim mergedRange As Range
    Dim area As Range
   
    ' 병합된 셀 범위 설정
    Set mergedRange = Worksheets("Sheet2").Range("B2:C3")
   
    For Each area In mergedRange.Areas
        ' 각 부분 영역의 서식 설정
        area.Interior.Color = RGB(255, 0, 0) ' 빨간색 배경
        area.Font.Bold = True
    Next area
End Sub

 

아래 그림처럼 소스를 실행한 결과 Range 영역 전체에 서식을 적용했습니다.

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 Excel VBA 개발을 위한 개발 도구 추가하기
엑셀 VBA 참조하는 여러가지 방법
엑셀 VBA 개발할 로그 출력하는 방법
엑셀 VBA 함수 만들어서 매크로와 연결하기
셀 VBA 워크시트, 선택되었을 실행되는 이벤트 함수 구현하기
Posted by 녹두장군1
,