[VBA] Excel Macro 테두리 그리기

0후·2022년 9월 15일
1

모듈

' 테두리
Sub drawBorder(sheetName As String, startRange As Range, endRange As Range, borderStyle As Integer, borderWeight As Integer, borderColor As Integer)
    Dim rng As Range
    
    With Sheets(sheetName)
        Set rng = Range(startRange, endRange)
        
        ' 기존 라인을 삭제한다.
        rng.Borders.LineStyle = xlLineStyleNone
       
        ' 매개변수로 받은 것을 적용한 라인을 그린다.
        rng.BorderAround LineStyle:=borderStyle, Weight:=borderWeight, ColorIndex:=borderColor
        
        ' 오른쪽 라인은 제거한다.
        rng.Borders(xlEdgeRight).LineStyle = xlLineStyleNone
    End With
End Sub

' 셀 테두리
Sub drawCellBorder(sheetName As String, startRange As Range, endRange As Range, borderStyle As Integer, borderWeight As Integer, borderColor As Integer)
    Dim rng As Range
   
    With Sheets(sheetName)
        Set rng = Range(startRange, endRange)
               
        ' 기존 라인을 삭제한다.
        rng.Borders.LineStyle = xlLineStyleNone
       
        ' 매개변수로 받은 것을 적용한 라인을 그린다.
        With rng.Borders
            .LineStyle = borderStyle
            .Weight = borderWeight
            .ColorIndex = borderColor
        End With
        
        ' 오른쪽 라인은 제거한다.
        rng.Borders(xlEdgeRight).LineStyle = xlLineStyleNone
    End With
End Sub

실행

' 테두리 적용
' 셀 전체
Call Common.drawCellBorder("시트명", tSheet.Cells(2, 1), tSheet.Cells(rowNum - 1, maxCol), xlContinuous, xlHairline, 1)
' 행 전체
Call Common.drawBorder("시트명", tSheet.Cells(2, 1), tSheet.Cells(4, maxCol), xlDouble, xlMedium, 1)



profile
휘발방지

2개의 댓글

comment-user-thumbnail
2022년 9월 21일

굳굳

1개의 답글