엑셀쿠키는 한 번의 다운로드로 평생 이용하실 수 있습니다. 프로그램과 데이터를 고객의 PC에 저장하여 사용하는 형식이라 안전하게 사용 가능합니다. 이용 기간에 따른 추가 비용이 발생하지 않아 매우 경제적입니다.
중소기업의 개별 특성, 다양한 업무를 상황별로 고려하여 제작된 프로그램을 업데이트합니다. 분야별 5,000여 개의 프로그램 중 내 업무에 맞는 프로그램을 다운받는 맞춤형 서비스입니다.
쿠키 프로그램은 MS Excel의 기본 사용법만 알면 즉시 사용할 수 있는 매운 쉬운 프로그램으로 누구나 손쉽게 배우고 사용할 수 있습니다.
중소기업의 모든 업무자동화!
쿠키의 업무자동화 프로그램은 VBA 코드로 개발된 제품으로
MS Excel 프로그램 기반으로 사용 가능하며,
자체적으로 개발한 기능은 물론,
MS Excel의 강력한 기능을 모두 사용하실 수 있습니다.
엑셀쿠키는 기업의 생산성을 높이는 업무자동화 지원 프로그램입니다.
[ 기초 강좌 ]
제 23 강
SelectCase문의 응용
Excel의 생명이라고 할 수 있는 SelectCase문의 응용
그 사용법을 알아봅니다.
이럴 때 필요해요
해당시트의 특정 열의 범위에서 셀값이 변경되었을 때 또다른 특정 셀값이 나오게 할때 필요합니다.
이렇게 사용해요
앞서 소개해 드린 Worksheet_Change 라는 이벤트 프로시저를 약간 응용하여 재미있는것을 만들어 봤습니다.
아시는 바와 같이, Excel 강좌에서 소개해 드렸던 [조건부서식]기능으로는
3개의 조건까지만 설정할 수 있었습니다만 이것을 매크로를 사용하여 필요한
모든 조건에 따라 각기 다른 서식을 설정할 수 있습니다.
이번에는, 아래의 데이터에서 Worksheet_Change 이벤트 프로시저를 호출하여 해당시트의
특정 열(여기서는 B열)의 범위에서 셀값이 변경되면, 또다른 특정 프로시저를 실행하도록 코딩합니다.
1) 1) 먼저, 아래와 같이 Worksheet_Change이벤트 프로시저를 코딩합니다.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then SelectCase_Coloring Target.Value End If End Sub |
설명을 해드리자면.
If Target.Column = 2 Then |
이구문은.
앞에서는 어느 특정 셀이 Target이 었습니다만, 위와 같이 코딩해 주면 특정 열(B열) 전체의 셀들이 Target이 됩니다.
만약에 Target(즉, 값이 변경되는 셀)의 열 번호(Column)가 2 면, 즉 B열에서의 선택된 셀값이 변경되면
(이것은 B열이 아닌, 다른 열의 셀 값이 변경되는 경우 프로시저가 실행되지 않도록 하기 위한 사전조치입니다.)
SelectCase_Coloring Target.Value |
Target의 값(Target.Value)에 따라 SelectCase_Coloring 이라는 이름의 또다른 프로시저를 호출하여 실행하게 됩니다.
즉, 앞에서는 Worksheet_Change이벤트 프로시저에 필요한 코드를 모두 기록하여 특정 셀(Target)의 값이 변경되면 코드의
내용을 실행하도록 했습니다만, 오늘 소개해 드리는 방법은 Worksheet_Change이벤트 프로시저에서 Target의 값이 변경되는
즉시 또다른 프로시저(여기서는 SelectCase_Coloring 라는 이름의 모듈프로시저)를 불러 내어 실행하게 됩니다.
아래의 내용은 SelectCase_Coloring라는 이름의 모듈프로시저의 코드내용입니다.
Sub SelectCase_Coloring(sCity As String) |
여기서 (sCity As String) 부분은 위 Worksheet_Change 이벤트 프로시저와의 연결고리라고 생각하시면 됩니다.
Dim rngCell As Range Dim rngRange As Range Dim colorRange As Range On Error Resume Next |
On Error Resume Next 라는 구문은 "에러가 발생하더라도 잔소리하지 말고 그냥 다음으로 넘어가라"는 명령입니다.
Set rngRange = Columns(2).SpecialCells(xlTextValues) |
rngRange라는 변수에 대해 2열에서 값이 있는 영역(SpecialCells(xlTextValues))으로 정의해 줍니다.
[Start].CurrentRegion.Interior.ColorIndex = xlNone |
먼저, Start 라는 [이름정의]된 셀(B7) 주변영역(CurrentRegion)의 색상을 모두 지웁니다.
For Each rngCell In rngRange |
For Each 문으로 위에서 rngRange라는 변수로 정의된 범위를 순환합니다.
Set colorRange = Range(rngCell, rngCell.Offset(0, 2)) |
변수 colorRange에 대해 rngCell부터 rngCell의 오른쪽 2칸까지(Offset(0, 2))범위임을 정의해 줍니다.
Select Case rngCell |
아래와 같이 각 Case별로 조건(즉, 각 도시명에 따른 색상번호)을 Select Case문 형식으로 지정합니다.
(Select Case문의 사용방법 등에 대해서는 오래전에 설명드린 기억이 있으므로 생략합니다.)
Case "서울"
Case "대구" End Select Next rngCell |
이렇게 해서, "서울","부산", "대구","광주", … 등 12개의 도시명에 대해 예전에 배웠던 [조건부 서식]에서와 같은 결과를
구했습니다. 참고로, 여기서는 편의상 12개의 조건에 대해서만 서식을 지정해 주었습니다만, Select Case 문을 사용하여
필요한 조건의 수 만큼 서식을 정의해 줄 수도 있겠죠?
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.