Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 시트 테두리 선 그리는 방법

엑셀(Excel)/VBA
반응형

엑셀 워크시트에 있는 데이터 영역을 꾸미기 위해 테두리 선을 그리게 됩니다. VBA 에서도 개체 속성을 이용해서 선을 그리고 색상을 변경하는 등 꾸밀 수 있습니다. 오늘은 선택한 영역의 외곽 테두리 뿐만 아니라 셀 전체 라인을 그리는 방법에 대해 알아 보도록 하겠습니다. 외각 테두리를 그리는 BorderAround 함수와 셀 라인을 그리는 Borders 속성을 이용하였습니다

 

 

 

먼저 외곽 테두리를 그리는데 사용하는 BorderAround 함수입니다. 5개의 인자가 있습니다. 각각 라인스타일, 선의 두께, 색상 인덱스, 색상 RGB, 색상 테마 입니다. 원형은 다음과 같습니다. 각 인자들은 무엇이며 입력 가능한 상수값들에 대해서 하나씩 알아 보겠습니다.

 

Range.BorderAround(LineStyle, Weight, ColorIndex, Color, ThemeColor)

 

 

LineStyle : 첫 번째 인수인 LineStyle 입니다. 상수 중 하나로 선 스타일을 지정합니다. xlContinuous (실선), xlDash (파선), xlDashDot (파선과 점선이 교대로 나타나는 형태), xlDashDotDot (파선과 두개의 점선이 교대로 나타나는 형태), xlDot (점선), xlDouble (이중선), xlLineStyleNone (선 없음), xlSlantDshDot (기울어진 파선) 등이 있습니다.

엑셀 VBA 시트 테두리 선 그리는 방법

 

Weight : 두 번째 인수로 선의 두께를 지정합니다. xlHairline (가장 가는 실선), xlThin (가는 실선), xlMedium (보통굵기의 선), xlThick (굵은 실선) 이 있습니다

엑셀 VBA 시트 테두리 선 그리는 방법

 

ColorIndex : 컬러 팔레트에 있는 색상 번호로 선 색을 지정한다. ColorIndex 에 해당하는 색상은 다음과 같습니다. 해당 번호를 입력하면 지정된 색상을 사용할 수 있습니다

엑셀 VBA 시트 테두리 선 그리는 방법

 

Color : 외곽 라인의 색상을 RGB 포맷으로 지정합니다. 

 

ThemeColor : 라인의 테마를 지정합니다. 테마란 여러 속성이 결합된 형태를 말합니다. 상수를 하나씩 입력하시면서 테스트 해 보세요

엑셀 VBA 시트 테두리 선 그리는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 개발할 로그 출력하는 방법
엑셀 VBA 시트에 있는 내용을 파일, 텍스트로 출력하기
엑셀 VBA 연산자 사용해서 String 문자열을 합치기
엑셀 VBA 마지막 행과 열의 찾기
셀 VBA GoTo 이용해서 줄로 분기하기



 

 

 

BorderAround 함수를 이용해서 영역 외각에 라인을 그려 보았습니다. 먼저 데이터가 있는 영역을 판단해야겠죠. Range 개체의 CurrentRegion 속성을 이용해서 연속된 데이터 영역을 가져옵니다. 다음 Borders.LineStyle 속성의 xlLineStyleNone 상수값은 기존 선을 모두 삭제하라는 명령입니다. 초기화 후 BorderAround 함수를 이용해서 선을 그리는 소스입니다.

 

Sub 영역_테두리()
   
    Dim rng As Range
   
    With Sheets("line")
       
        Set rng = .Range("B2").CurrentRegion
               
        '' 기존 라인을 삭제한다.
        rng.Borders.LineStyle = xlLineStyleNone
       
        '' 외곽 라인을 그린다.
        rng.BorderAround LineStyle:=xlContinuous, Weight:=xlThin, ColorIndex:=22
   
    End With
End Sub

 

엑셀 VBA 시트 테두리 선 그리는 방법

 

다음은 Borders 속성을 이용해서 테두리가 아닌 셀에 모든 라인을 그리는 방법입니다. BorderAround 에서 인수로 입력된 상수값을 참고 하시면 됩니다.

 

Sub 영역_라인()
   
    Dim rng As Range
   
    With Sheets("line")
       
        Set rng = .Range("B2").CurrentRegion
               
        '' 기존 라인을 삭제한다.
        rng.Borders.LineStyle = xlLineStyleNone
       
        rng.Borders.LineStyle = 1   '' 실선
        rng.Borders.ColorIndex = 14 '' 색상
        rng.Borders.Weight = xlThin '' xlThin : 가는 실선
   
    End With
End Sub

 

엑셀 VBA 시트 테두리 선 그리는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 개발할 로그 출력하는 방법
엑셀 VBA 시트에 있는 내용을 파일, 텍스트로 출력하기
엑셀 VBA 연산자 사용해서 String 문자열을 합치기
엑셀 VBA 마지막 행과 열의 찾기
셀 VBA GoTo 이용해서 줄로 분기하기
반응형
Posted by 녹두장군1
,