EXCEL - VBA

엑셀 VBA : 모든 테두리를 실선으로

별동산 2023. 6. 5. 08:42
반응형

1. 매크로 기록 - 모든 테두리를 실선으로 그리기

 

개발도구에서 매크로 기록을 누르고,

 

매크로 저장 위치를 '현재 통합문서'로 하고, 확인 버튼을 누르면

 

홈 탭, 테두리에서 모든 테두리를 클릭하고,

 

개발도구 - 매크로 중지를 누르면

 

아래와 같은 코드가 만들어집니다.

Sub 매크로1()
'
' 매크로1 매크로
'

'
    Range("A2:Q15").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub

 

그런데, Selection.Borders 안에 xlEdgeLeft(맨 왼쪽), xlEdgeTop(맨 위), xlEdgeBottom(맨 아래), xlEdgeRight(맨 오른쪽), xlInsideVertical(안쪽 세로), xlInsideHorizontal(안쪽 가로) 등 을 넣어 복잡하게 선을 그립니다.

 

xlDiagonalDown(대각선 아래로), xlDiagonalUp(대각선 위로)만 빠져 있습니다.

 

2. 위 매크로를 간단하게

모든 테두리를 실선으로 그리기 매크로를 Borders 속성(Property)을 이용해 아래와 같이 간단히 만들 수 있습니다.

Sub 모든테두리()
    Dim myRange As Range
    Set myRange = Application.InputBox("테두리를 그릴 범위를 선택하세요", Type:=8)

    With myRange.Borders
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub

 

Application.Inputbox를 이용해 먼저 테두리를 그릴 범위를 입력받습니다.

반응형