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