이 페이지에서
구문
= MeasureRange ( Rng, [FirstCellOnly] )
인수구분
형식 설명
Rng
필수
Range
크기 및 병합여부를 확인할 셀(범위)입니다.
FirstCellOnly
선택
Boolean
True일 경우 범위의 첫번째 셀의 크기만 반환합니다. 기본값은 False 입니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'■ MeasureRange 명령문
'■ 선택된 범위의 병합여부를 확인합니다.
'■ 인수 설명
'_____________Rng : 크기 및 병합여부를 확인할 셀(범위)입니다.
'_____________FirstCellOnly : True일 경우 범위의 첫번째 셀의 크기만 반환합니다.
'■ 반환값
'_____________배열을 반환합니다. {넓이(pt), 높이(pt), 병합여부(Boolean)}
'###############################################################
Function MeasureRange(Rng As Range, Optional FirstCellOnly As Boolean = False)
Dim WS As Worksheet
Dim iCol As Long: Dim iRow As Long
Dim iCols As Long: Dim iRows As Long
Dim dblW As Double: Dim dblH As Double
Dim i As Long
Dim vaMeasure As Variant
With Rng
Set WS = .Parent
iCol = .Column
iRow = .Row
If FirstCellOnly = False Then iCols = Rng.Columns.Count Else iCols = .Offset(, 1).Column - iCol
If FirstCellOnly = False Then iRows = Rng.Rows.Count Else: iRows = .Offset(1, 0).Row - iRow
End With
For i = 1 To iCols
dblW = dblW + WS.Cells(iRow, iCol + i - 1).ColumnWidth
Next
For i = 1 To iRows
dblH = dblH + WS.Cells(iRow + i - 1, iCol).RowHeight
Next
ReDim vaMeasure(0 To 2)
vaMeasure(0) = dblW
vaMeasure(1) = dblH
vaMeasure(2) = Rng.MergeCells
MeasureRange = vaMeasure
End Function
활용 예제
반환된 배열에서 넓이·병합 여부 꺼내기
= MeasureRange("A1")(0) '// A1의 넓이를 반환합니다.
= MeasureRange("A1")(2) '// A1셀의 병합여부를 반환합니다.
= MeasureRange("A1")(0) / Application.CentimetersToPoints(1) '// A1셀의 넓이를 cm로 반환합니다.
선택한 셀의 넓이·높이·병합 여부를 메시지로 표시
Sub Test()
Dim vaMeasure As Variant
vaMeasure = MeasureRange(Selection)
MsgBox "선택한 셀의 넓이는 " & vaMeasure(0) & "pt 입니다." & vbNewLine & _
"선택한 셀의 높이는 " & vaMeasure(1) & "pt 입니다." & vbNewLine & _
"선택한 셀의 병합여부는 [ " & vaMeasure(2) & " ] 입니다."
End Sub
안내사항
넓이와 높이는 엑셀의 기본 단위인 pt(포인트)로 계산됩니다.
CentimetersToPoints 또는 InchesToPoints 를 사용해 cm·inch 로 변환할 수 있습니다.
결과는 {넓이, 높이, 병합여부} 형태의 배열로 반환되므로 인덱스(0·1·2)로 값을 참조합니다.
댓글 4
로그인 후 댓글을 작성할 수 있습니다.
권영원
2019.12.27 02:26
감사합니다. ㅎ 바로 해결해주셨네요 ㅎㅎ
오빠두엑셀
작성자
2019.12.27 18:15
별 말씀을요! ^_^* 앞으로도 종종 유익한 함수 올려드릴테니 자주 들려주세요!
박혜영
2020.03.05 18:57
와... 진짜 엑셀은 오빠두입니다ㅋㅋㅋ 감사해요!
강민준🤗
2024.08.11 12:40
좋은 자료 감사합니다.🙇♂️