콘텐츠 내 자동삽입광고

광고1

posted by 초코생크림빵 2023. 4. 20. 20:22
반응형

VBA 엑셀 

VBA 엑셀 주민등록번호에서 1900년대 색깔 적용

자료에서 1900년대 태어난 사람들만 노란색을 적용하는 소스입니다.

 

1900년대 색깔 버튼을 누르면 아래 그림처럼 색깔이 적용됩니다.

 

● 아래는 소스 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub Color1900sSSN()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim ssn As String
    
    ' 작업하고자 하는 워크시트 지정
    Set ws = ThisWorkbook.Sheets("Sheet1"' 워크시트명을 Sheet1으로 변경하세요
    
    ' 작업할 범위 지정 (B1:B10)
    Set rng = ws.Range("C3:C13"' 작업할 범위를 원하는 범위로 변경하세요
    
    ' 각 셀에 대해 주민등록번호 확인 및 노란색으로 채움
    For Each cell In rng
        ssn = cell.Value
        If Mid(ssn, 81= "1" Or Mid(ssn, 81= "2" Then 
' 1900년대에 해당하는 주민등록번호
            cell.Interior.Color = RGB(2552550' 노란색으로 채움
        End If
    Next cell
End Sub
 
위 소스 코드(Color1900sSSN)를 VBA 에디터에서 실행하거나, 엑셀의 매크로로
등록하여 실행하면 B1:B10 범위에 입력된 주민등록번호 중 1900년대에 해당하는
주민등록번호를 노란색으로 채워줍니다.

주민등록번호의 입력 형식이 yymmdd-xxxxxxx 또는 yymmddxxxxxxxx로 되어
있다고 가정하고 작성된 코드이므로, 실제 사용 시에는 입력된 주민등록번호의
형식에 맞게 코드를 수정하셔야 합니다.
 
 
 
Sub ClearColorRange()
    Dim rng As Range
    Set rng = Range("C3:C13")
    rng.Interior.Color = xlNone
End Sub
 
위 소스 코드는 "C3:C13" 범위를 rng 변수에 할당하고, 그 범위의 셀 색깔을
xlNone으로 설정하여 색깔을 지웁니다.
VBA의 Range 객체를 사용하여 엑셀의 셀 범위를 다룰 수 있습니다.
Interior.Color 속성을 사용하여 셀의 배경색을 설정할 수 있습니다.
xlNone은 배경색을 없음으로 설정하는 상수 값입니다.
위 소스 코드를 VBA 에디터에서 실행하면 C3:C13 범위의 셀의 배경색이
모두 지워집니다.
 
cs

 

 

● Sub Color1900sSSN() 소스 설명

위 소스 코드(Color1900sSSN)를 VBA 에디터에서 실행하거나, 엑셀의 매크로로 등록하여
실행하면 B1:B10 범위에 입력된 주민등록번호 중 1900년대에 해당하는 주민등록번호를
노란색으로 채워줍니다.

주민등록번호의 입력 형식이 yymmdd-xxxxxxx 또는 yymmddxxxxxxxx로 되어 있다고 가정하고
작성된 코드이므로, 실제 사용 시에는 입력된 주민등록번호의 형식에 맞게 코드를 수정하셔야 합니다.


● Sub ClearColorRange()
위 소스 코드는 "C3:C13" 범위를 rng 변수에 할당하고, 그 범위의 셀 색깔을 xlNone으로 설정하여
색깔을 지웁니다. VBA의 Range 객체를 사용하여 엑셀의 셀 범위를 다룰 수 있습니다.
Interior.Color 속성을 사용하여 셀의 배경색을 설정할 수 있습니다. xlNone은 배경색을 없음으로
설정하는 상수 값입니다.
위 소스 코드를 VBA 에디터에서 실행하면 C3:C13 범위의 셀의 배경색이 모두 지워집니다.

 

◆ 소스파일

VBA_1900년색깔_ver20230420.xlsm
0.02MB

 

 

반응형

콘텐츠 내 자동삽입광고