메뉴
VBA 프로젝트 강의

[엑셀마리오게임] 셀 배경색 칠하기

오빠두엑셀 by 오빠두엑셀
  • 학습시간 7분
  • 작성일 2018.09.18
  • 조회수 7,542회

VBA로 셀에 배경색 칠하는 방법! (Range.Interior)

이 강의에서는 엑셀 매크로 녹화 기능으로 셀 배경색 변경 동작을 직접 기록하고, 그 안에서 Range.Interior.Color 속성을 찾아내 VBA 명령문으로 작성하는 방법을 다룹니다. 매크로를 처음 다루는 분도 녹화된 코드의 구조를 분석하면서 셀 서식을 제어하는 기본 원리를 자연스럽게 익힐 수 있습니다.

[엑셀마리오게임] 셀 배경색 칠하기
DOWNLOADS

실습자료를 준비했어요

수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇

1. 엑셀 개발도구 설정하기

엑셀 개발도구를 활성화하는 자세한 방법은 관련 포스트를 참고해주세요.

2. 매크로 녹화하기

개발도구를 활성화한 뒤, 매크로 녹화 버튼을 클릭하여 매크로 녹화를 진행합니다.
매크로 녹화 버튼을 실행하는 방법은 크게 두 가지가 있습니다.

2-A. 개발도구 탭

상단 리본의 [개발 도구] 탭을 클릭하면, 좌측에서 [매크로 녹화] 버튼을 확인할 수 있습니다.

2-B. 좌측하단 상태 창

매크로 개발 도구를 활성화하면 엑셀 화면 좌측 하단의 상태 표시줄에도 작은 매크로 녹화 버튼이 함께 나타납니다.

3. 기록된 명령문 확인하기

'// 매크로 녹화 버튼을 클릭한 뒤 아래 동작을 순서대로 녹화합니다.
A. 임의의 범위를 선택한 뒤 셀 배경색을 빨간색으로 변경합니다.
B. 임의의 범위를 선택한 뒤 셀 배경색을 노란색으로 변경합니다.
C. 배경색을 변경한 범위를 다시 선택한 뒤 채우기 없음으로 배경색을 지웁니다.
D. 매크로 녹화를 중단하고 ALT + F11 키를 눌러 기록된 매크로를 확인합니다.

위 동작을 녹화한 뒤 VBA 편집창을 열어보면, 아래와 같이 길게 매크로 코드가 자동으로 기록된 것을 확인할 수 있습니다.

엑셀 매크로 범위 색 칠하기

기록된 매크로를 살펴보면, With 문 안에 동일한 속성들이 반복적으로 나열되어 있는 것을 확인할 수 있습니다.
이때 Pattern, TintAndShade 등 다른 속성의 값은 모두 동일하지만, Range.Interior.Color 속성의 값만 다르게 기록되어 있는 점이 눈에 띕니다.
또한 마지막 동작인 '채우기 없음'으로 배경색을 지웠을 때는 Color 속성 자체가 코드에 기록되지 않은 점도 함께 확인할 수 있습니다.
따라서,

Range.Interior.Color 속성은 셀 배경색을 제어하는 속성이구나!

라고 정리할 수 있습니다.
Range.Interior.Color 속성의 동작 원리에 관한 자세한 내용은 영상강의에서 단계별로 설명드렸으니 함께 참고해주세요.

4. 명령문 작성하기

모듈 창에 아래와 같이 명령문을 직접 입력합니다.

Sub BG_Red()
 
Dim WS As Worksheet
Dim Rng As Range
 
Set WS = ThisWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1:A10")
 
Rng.Interior.Color = vbRed
 
End Sub

명령문을 작성한 뒤, 코드 안의 아무 위치나 클릭한 상태에서 키보드 F5 키를 눌러 매크로를 실행합니다.
실행 결과 Sheet1 의 A1:A10 범위가 빨간색으로 변경된 것을 확인할 수 있습니다.
또한 시트에서 원하는 범위를 직접 선택해 사용자 지정 범위로 설정한 뒤 VBA 명령문의 범위 인수로 사용하면, 아래 화면처럼 '하트' 모양과 같이 원하는 셀 영역만 골라 배경색을 변경할 수도 있습니다.

댓글 2
5 (2개 평가)
뜨남
뜨남 2021.03.09 10:14
이 기능으로 수정이 되거나 열 추가가 되었을 때, 시트가 수정될 때 색이 변경하는 방식으로 응용할 수 있을까요?
강민준🤗
강민준🤗 2024.08.09 11:12
좋은 강의 감사합니다🙇‍♂️
스크랩 완료