[ 기초 강좌 ]
제 17 강
특정셀에 색상입히기
Excel의 생명이라고 할 수 있는 특정셀에 색상입히기
그 사용법을 알아봅니다.
이럴 때 필요해요
주어진 데이터에서 특정셀에 색상을 입히고 싶을 때 사용합니다.
이렇게 사용해요
아래의 데이터에서 빈셀만 특정 색상으로 입혀보는 방법을 알아봅시다.
사용되는 코드를 함께 살펴 보도록 하겠습니다.
Sub Coloring() Dim r As Integer, intRow As Integer |
'먼저, r과 intRow라는 정수형 변수를 선언합니다.
intRow = Cells(65536, 3).End(xlUp).Row |
' intRow라는 변수는 C열에서 데이터가 입력된 마지막 셀의 행 번호(Row)임을 정의합니다.
' 참고로, C65536 셀을 선택하신 다음, 키보드의 Ctrl+↑ 키를 눌러 보시기 바랍니다.
For r = 6 To intRow |
' 변수 r은 6, 즉 데이터가 입력된 첫번째 셀의 행 번호(6)부터 마지막 행 번호(intRow) 까지로
' 정의해 주면, 아래 If ~ Then 문 안의 명령문을 순환하며 수행하게 됩니다.
If IsEmpty(Cells(r, 3)) Then Cells(r, 3).Interior.ColorIndex = 41 |
' Cells(r, 3) 는 Cells(행번호, 열번호)이므로 3열(즉, C열)의 6행부터 intRow행까지의
' 셀들 중에서 값이 비어 있는(IsEmpty)셀에만 파란색(ColorIndex = 41)을 입혀 줍니다.
Else Cells(r, 3).Interior.ColorIndex = xlNone |
' 그 외(Else)의 경우, 즉 값이 들어 있는 셀에는 채우기 없음(ColorIndex = xlNone)로
' 지정해 줍니다.
End If |
' If문을 종료(End If)하고, For~ Next 순환문 역시 종료(Next r)합니다.
Next r End Sub |
이렇게 회색박스안에 있는 수식을 작성하여 실행하게 되면, 아래와 같은 결과가 나오게 됩니다.
이해가 되셨는지요? 그런데, 여기서 "그렇다면, For r = 6 To intRow 부분에서 intRow를 C열 에서의
마지막 행 번호인 35로 지정해서 그냥, For r = 6 To 35로 정의해 주면 될 것을 안 그래도 복잡한데
뭐하러 intRow라는 변수까지 굳이 동원해야 되나요?" 라고 생각하시는분도 계실 것 같군요.
의문에 대한 해답은 간단합니다. 즉, 데이터가 C35 셀의 범위를 벗어 나서 C36, C37, C38 …등의 셀에도 계속
늘어 날 수 있는 경우라도, 항상 C열의 마지막 셀의 행번호(Row)를 구하기 위해, intRow 라는 변수를 선언한
다음, intRow = Cells(65536, 3).End(xlUp).Row 라고 정의해 준 것입니다.
만약, 위 프로시저와는 반대로 C열의 데이터들 중에서 값이 들어 있는 셀, 즉 비어 있지 않은 셀에 특정한 색상을 입혀야 하는
경우라면, 어느 부분을 어떻게 수정해야 할까요? 이것은 숙제!
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.