Uipath/VBA
VBA - Range 셀 서식
북국버들
2022. 10. 13. 23:09
엑셀에서 자동화 하고자 하면 뗄레야 뗄수 없는 VBA 그 중 일부를 정리한다.
셀 정리 예제
With .Range("J:M,A:A")
.HorizontalAlignment = xlCenter '셀서식 가로 가운데
.VerticalAlignment = xlCenter '셀서식 세로 - 가운데
.WrapText = False '텍스트 줄 바꿈
.Orientation = 0 '선택된 셀의 텍스트 방향은 수평임
.AddIndent = False '선택된 셀의 내어 쓰기는 안 함
.IndentLevel = 0 '선택된 셀의 내어 쓰기 값이 0임
.ShrinkToFit = True '셀에 맞춤
.ReadingOrder = xlContext '선택된 셀의 읽기 순서는 텍스트 방향임
End With
Range.HorizontalAlignment : 셀서식 - 수평정렬
정렬방식 | 예문 | 값 |
중앙 | Range.HorizontalAlignment = xlCenter | -4108 |
선택 영역의 중앙 | Range.HorizontalAlignment = xlCenterAcrossSelection | 7 |
균등 분할 | Range.HorizontalAlignment = xlDistributed | -4117 |
채우기 | Range.HorizontalAlignment = xlFill | 5 |
일반 (데이터 유형에 따라 정렬) |
Range.HorizontalAlignment = xlGeneral | 1 |
양쪽 맞춤 | Range.HorizontalAlignment = xlJustify | -4130 |
왼쪽 | Range.HorizontalAlignment = xlLeft | -4131 |
오른쪽 | Range.HorizontalAlignment = xlRight | -4152 |
Range.VerticalAlignment : 셀서식 - 수직정렬
정렬방식 | 예문 | 값 |
아래쪽 | Range.VerticalAlignment = xlBottom | -4107 |
가운데 | Range.VerticalAlignment = xlCenter | -4108 |
균등 분할 | Range.VerticalAlignment = xlDistributed | -4117 |
양쪽 맞춤 | Range.VerticalAlignment = xlJustify | -4130 |
위쪽 | Range.VerticalAlignment = xlTop | -4160 |
Range.WrapText = True (또는 False) : 텍스트 줄 바꿈
Worksheets("Sheet1").Range("B2").WrapText = True
Range.Orientation : 텍스트 방향
방향 | 예문 | 값 |
아래쪽 | Range.Orientation = xlDownward | -4170 |
가로 | Range.Orientation = xlHorizontal | -4128 |
위로 | Range.Orientation = xlUpward | -4171 |
아래로 진행 후 가로 가운데 | Range.Orientation = xlVertical | -4166 |
Range.AddIndent = True :
셀의 텍스트 정렬이 horizontally 또는 vertically의 균등분할로 설정될 때 자동으로 텍스트를 들여씀
With Worksheets("Sheet1").Range("A1")
.HorizontalAlignment = xlHAlignDistributed
.AddIndent = True
End With
Range.ShrinkToFit = True (또는 False) : 셀에 맞춤
Rows(1).ShrinkToFit = True
Range.IndentLevel : 셀 또는 범위의 들여쓰기. 0에서 15 사이의 정수로 설정
With Range("A10")
.IndentLevel = 15
End With
Range.IndentLevel : 읽기 순서를 반환하거나 설정
정렬방식 | 예문 | 값 |
context에 따라 | Range.ReadingOrder = xlContext | -5002 |
왼쪽 > 오른쪽 | Range.ReadingOrder = xlLTR | -5003 |
오른쪽 > 왼쪽 | Range.ReadingOrder = xlRTL | -5004 |
*추가
Range.Merge : 셀병합
Range("A1:A4").Merge
Across : default 는 False, True일 경우 지정된 셀들을 병합
Sub MergeCellsAcross()
Range("A1:D1").Merge Across:=True
End Sub
Range.UnMerge : 병합된 셀을 개별 셀로 변환
With Range("a3")
If .MergeCells Then
.MergeArea.UnMerge
Else
MsgBox "not merged"
End If
End With
Range.InsertIndent : 들여쓰기
With Range("a10")
.InsertIndent -1
End With
정렬방식 | 예문 |
들여 쓰기 | Range.InsertIndent 1 (1씩 증가) |
Range.InsertIndent -1 (1씩 감소) |
그외 기타 추가적으로 Range와 관련된 함수
https://learn.microsoft.com/en-us/office/vba/api/excel.range(object)
Range object (Excel)
Office VBA reference topic
learn.microsoft.com
참고사이트
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=s5487&logNo=220386926092
https://learn.microsoft.com/en-us/office/vba/api/excel.xlhalign
https://learn.microsoft.com/en-us/office/vba/api/excel.xlvalign
https://learn.microsoft.com/en-us/office/vba/api/excel.xlorientation