콘텐츠 내 자동삽입광고

광고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

 

 

반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2021. 8. 21. 22:42
반응형

@ 비쥬얼베이직

특징

1. 행위중심 프로그램(Event-Driven Programming)

: 인간의 행위나 자원에 따라 해당 루틴을 처리하도록 프로그래밍 하는 것

 

2. 객체(또는 개체) 지향 프로그래밍(OOP = Object Oriented Programming)

: 인간의 사고에 바탕을 두고 프로그래밍 하는 것. 즉, 기존의 프로그래밍 방식은 컴퓨터가 이해하기 쉽고, 사용자는 이해하기 까다로운 방식으로 이루어 졌는데, 현재는 사용자가 손쉽게 프로그래밍이 이루어지도록 한 것이 개체지향 프로그래밍이다.

3. 사건 처리 중심 언어이다.

 

● 용어정리

1. 개체 (= 객체, Object) : 개체란, 인지의 대상이다. 예를 들면, 꽃, 자동차, 눈, 사람, 구름, 컴퓨터 등 인지되는 모든 것이 곧 개체이다. 개체에는 두가지 특성이 있는데, 하나는 속성이고, 또 하나는 기능이다. 예를 들어 설명하면, 자동차라는 개체가 있으면, 속성에는 바퀴가 넷, 색이 파란색, 차종은 마티즈, 배기량은 1500cc등이 될 수 있고, 기능은 달린다. 멈춘다. 경적을 룰린다. 라디오를 켠다. 등의 기능을 가질 수 있다. 즉, 속성은 정적인 면이고, 기능은 동적인 면이다.

 

2. 속성(Property) : 객체에 할당하는 값(Value)으로, 주로 객체의 형태를 결정하거나 어떤 값을 할당, 기억된 값을 읽어내는 용도로 사용된다. 예를 들어 객체의 객체의 크기를 지정하기 위해서는 Width, Height 속성을 객체의 위치를 지정하기 위해서는 Top과 Left속성을 사용한다.

 

3. 메소드(Method) : 해당 객체에 어떤 행동을 하도록 지시하는 명령어이다. 예를 들어 도형을 그린다거나 그려진 도형을 지우는 등의 명령은 모두 메소드에 해당한다.

 

4. 이벤트(Event) : 프로그램 실행중에 발생하는 어떤 사건으로 사용자가 해당 객체 위에서 마우스를 클릭하거나, 키보드를 누르는 등의 동작을 할 때 발생한다.

 

5. 이벤트 핸들러(Event Handler) : 마우스를 클릭하거나 키보드를 누르는 등의 즉정한 사건(Event)이 발생했을 때 프로그램에서 처리해야 할 내용을 설정하는 부분이다.

 

6. 사건 프로시저(Event Procedure) : 사건 프로시저는 코드 창에서 작성되는데 해당 개체를 두 번 클릭하거나 [Viuew]메뉴의 [Code] 명령을 처리해도 된다. 사건 프로시저는 개체의 Name 속성에 지정된 개체명, 밑줄(_), 사건 명칭이 연결된다.

 

● 모듈(Module)

하나의 프로젝트에서 전역적으로 쓰이는 상수, 변수, 프로시저, 함수 등을 모아 놓은 프로그램 모듈이다. 같은 프로그램 모듈이라도 폼과는 달리 자원이나 화면 디자인에 관한 정보는 들어 있지 않다. 대신 폼이 지역적인 성격을 띄는 반면, 모듈은 전역적인 성격을 띄기 때문에 모듈에서 선언된 변수들은 다른 모듈, 폼에서 모두 쓰일 수 있다. 파일로 저장될 때에 “BAS’라는 확장자를 가지고 저장된다.

반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2021. 8. 11. 22:16
반응형

@ ActiveCell : 현재 선택된 셀을 참조

ex)

실습1)

Sub abc()

ActiveCell.Value = 10

End Sub

시트에서 F5 실행하면, 10이 찍힘

 

실습2)

Sub col()
ActiveCell.Value = ActiveCell.Column
Cells(ActiveCell.Row, ActiveCell.Column + 1) = ActiveCell.Row
End Sub

선택한 셀에 열번호, 해당 셀의 오른쪽은 행번호를 넣는 소스 입니다.

 

 

 

@ Offset

 

ex)

ActiveCell.Offset(1,0).Range("A1")

현재셀의 다음행, 같은 열을 선택합니다.

B3이였다면, B4가 됩니다.

Offset(1,0)은 상대주소로 현재 주소에 +1행, +0열을 하는 것입니다.

 

★ Range("A1")는 절대주소 A1이 아니라, 현재 위치를 말합니다.

    Range("A1") 이 문구는 빼도 상관이 없습니다.

 

 

 

반응형

콘텐츠 내 자동삽입광고