기초부터 실전까지 VBA 엑셀13 - 조건문 Select Case

IT 관련 지식/VBA 공부|2019. 11. 2. 08:13
반응형
728x170

<VBA 엑셀13 - 조건문 Select case>

 

이번에는 if 조건문과 조금 다른 Selece Case라는 조건문에 대해 알아보겠습니다.

 

사실 이 Select ~ Case는 ElseIf과 매우 비슷합니다.

 

하지만 조건이 많을 경우 Select Case가 훨씬 유리한데요

 

그 이유는 코딩이 짧아지고 직관성이 높아지기 때문입니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 


1. 기본형

 

기본 형태는 아래와 같습니다.

 

그럼 이제 하나씩 살펴보도록 하죠

Select Case testexpression
    [Case expressionlist-n
        [statements-n]]
    ...
    [Case Else
        [elsestatements]]
End Select

 

testexpression 반드시 지정해야합니다.
주로 변수를 지정합니다.
expressionlist-n "testexpression"에서 지정한 변수가 만족할 조건을 입력합니다.
statements-n 선택 사항입니다.
"expressionlist-n"이 만족될 경우 실행할 코딩을 적는 구간입니다.
elsestatements 선택 사항입니다.
인수 testexpression이 모든 Case 절과 일치하지 않을 때, 실행할 코딩을 적는 구간입니다.

 


2. 예문

 

① 기본형

Select Case i `i는 여기서 변수
  Case 1
    'i=1일때 처리
  Case 2
    'i=2일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select

 

② Or 조건

 

Select Case i `i는 여기서 변수
  Case 1, 2
    'i=1 or 2일때 처리
  Case 3, 4
    'i=3 or 4일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select
300x250

 

 

③ 범위 지정

 

Select Case i `i는 여기서 변수
  Case 1 To 3
    'i= 1~3일때 처리
  Case 4 To 6
    'i= 4~6일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select

 

④ 부등호 사용

 

Select Case i `i는 여기서 변수
  Case Is < 2
    'i < 2일때 처리
  Case Is >=5
    'i >= 5일때 처리

  Case Else
    'i가 위의 조건을 만족하지 않을때 처리
End Select

 

주로 위와 같이 4개의 경우를 이용하여 사용할 수 있습니다.

 

그럼 마지막으로 If 조건문에서 사용한 예제를 Select Case를 이용하여 표현해보고 마치겠습니다.

 

<If절을 사용한 조건문>


Sub if1()

    If Cells(1, 1) >= 100 Then
        Cells(1, 2) = "○"
    Else
        Cells(1, 2) = "×"
    End If

End Sub

 

<Select Case를 사용한 조건문>

Sub select1()

    Select Case Cells(1, 1)
    
        Case Is >= 100
            Cells(1, 2) = "○"
        
        Case Else
            Cells(1, 2) = "X"
    End Select
    
End Sub

 

위와 같이 동일한 결과를 다른 프로그램을 이용하여 만들 수 있습니다.


더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 

다음에는 신기한 MsgBox라는 것에 대해 알아보겠습니다!

반응형

댓글()

기초부터 실전까지 VBA 엑셀8 - 반복문 For

IT 관련 지식/VBA 공부|2019. 10. 23. 12:09
반응형
728x170

<VBA 엑셀8 - 반복문 For>

 

VBA에는 두 가지의 반복문이 있는데 이번에는 For Next 반복문에 대해 먼저 알아보겠습니다.

 

"반복문"이란 말 그대로 지정한 구문을 해당 횟수 만큼 반복한다는 의미입니다.

 

"변수 선언"과 "반복문"만 배워도 몇 가지 프로그램을 만들 수 있습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 


1. For Next 문 사용하기

 

기본적인 양식은 다음과 같습니다.

 

For counter = start To end [Step step]
  [statements]
  [Exit For]
  [statements]

  
Next [counter]

 

다음은 각 항목의 의미를 알려드리겠습니다.

counter(숫자) 반드시 지정합니다.
카운터에 사용할 변수(숫자)를 지정합니다.
배열 변수 및 부울 (Boolean)에 포함 된 변수는 지정할 수 없습니다.
start(숫자) 반드시 지정합니다.
counter 인자의 초기 값을 지정합니다.
end(숫자) 반드시 지정합니다.
counter 인자의 최종 값을 지정합니다.
step(숫자) 선택 사항입니다.
루프를 반복마다 인수 counter에 가산되는 값을 지정합니다.
step 매개 변수를 생략하면 루프를 반복마다 counter 인자는 1이 가산됩니다.
statements 선택 사항입니다.
루프에서 실행되는 일련의 명령문에서 For와 Next 사이에 기술합니다.
여기에 기술 한 루프는 For ... Next 문에서 지정한 횟수만큼 실행됩니다.

간단히 풀어서 해석하면

 

"statements = 구문"을 start(시작) ~ end(종료)만큼 반복한다.

 

이렇게 됩니다.

 


2. 예문

 

다음과 같이 코드를 VBA에 입력해보겠습니다.

 

Sub For1()
  Dim i
  For i = 1 To 10
    Cells(i, 1) = 1
  Next i
End Sub

 

위의 예문을 VBA로 실행하면

아래와 같이 적어진 것을 확인할 수 있습니다.

VBA For Next 반복문

즉, "A1" ~ "A10"까지 "1"이라는 숫자를 반복해서 1개씩 넣은 것이 됩니다.

300x250

3. Exit For 사용해보기

 

이번에는 For 반복문을 탈출할 수 있는 Exit For 이라는 구문을 사용해보겠습니다.

 

위에서 사용했던 코드의 중간에 Exit For를 넣어보겠습니다.

 

Sub For1()
    Dim i
    For i = 1 To 10
        Cells(i, 1) = 1
        Exit For 
    Next i
End Sub

 

위의 결과와 달리 "A1" 하나밖에 "1"이 들어있지 않습니다.

 

그 이유는 도중에 Exit For로 인해 반복문을 취소했기 때문입니다.

 

이렇게 Exit For와 나중에 배울 "조건문"을 배우면 여러가지 프로그램을 만들 수 있습니다.

 


4. Step 사용해보기

 

이번에는 For 반복문에서 "Step"이라는 것을 활용해 보겠습니다.

 

아래와 같이 예문을 입력합니다.

 

Sub For1()
    Dim i
    For i = 1 To 10 Step 2
        Cells(i, 1) = 1
    Next i
End Sub

 

그리고 이를 실행해보면 다음과 같은 결과가 나옵니다.

 

Step의 의미는 해당 숫자만큼 건너뛴다는 것을 의미합니다.

즉, 위에서 Step 2 라고 했으니

 

A1 -> A3 -> A5 -> A7 ->A 9

 

이렇게 해당 셀(Cell)에 숫자 "1"이 들어가게 됩니다.

 


5. For 반복문의 중첩

 

For은 중첩하여 몇번이든 사용할 수 있습니다.

 

다음과 같이 코딩을 해봅시다.

 

Sub For2()
    Dim i, j
    For i = 1 To 10
        For j = 1 To 10
            Cells(i, j) = 1
        Next j
    Next i
End Sub

 

그리고 실행을 해보면 아래와 같은 결과가 나옵니다.

 

 

이처럼 반복문에 반복문을 넣어서 여러가지 프로그램을 만들 수 도 있습니다.

 

하지만, 반복을 3번 이상하면 코딩을 이해하기 어렵게 되므로 2번까지만 추천합니다.

 


오늘 포스팅은 여기까지 입니다. 

 

다음에는 다른 반복문인 Loop에 대해 배워보겠습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

반응형

댓글()

기초부터 실전까지 VBA 엑셀4 - Range 사용법 및 특징

IT 관련 지식/VBA 공부|2019. 10. 21. 09:07
반응형
728x170

<VBA 엑셀4 - Range 사용법 및 특징>

 

Range를 어떻게 활용하고 사용하는지에 대해 자세히 알아보겠습니다.

 

먼저 Range는 셀을 지정 or 선택하는 하나의 방법입니다.

 

기본적인 형태("셀 주소"에 "문자"를 넣어라)는 아래와 같은데 

 

Range ( "셀 주소").value = "들어가는 문자"

 

사실을 .Value라는 것이 숨어있습니다.

 

하지만 .value가 디폴트(Default)값 이기 때문에 생략을 해도 엑셀이 이를 자동으로 인식합니다.

 

.value 이외에 다른 값을 지정할 수 있지만 이것의 사용법은 나중에 따로 포스팅을 하겠습니다.

 


1. 여러 셀을 지정

 

Range ( "A1 : C5")


이와 같이 : (콜론)으로 구분하여 시작점과 끝점을 지정 합니다.

 

다음과 같이 지정해도 동일합니다.
Range ( "A1", "C5")
따라서, (쉼표)로 구분하여 시작점과 끝점을 지정 합니다.
이제 A1 셀에서 C5 셀 사각형 셀 범위 (15 개 셀) 을 지정할 수 있습니다.

 

즉,

 

Range ("시작 셀, 종점 셀")
이되도록 지정합니다.

 


2. 열 전체를 지정

 

Range ( "A : A")
이제 열 A 전체 합니다.

 

Range ( "A : C") 또는 Range ( "A : A", "C : C")
이렇게 하면, A 열에서 열 C까지의 3 열 지정 합니다.

300x250

3. 전체 행 지정

 

Range ( "1 : 1")
이제 1 번째 줄 전체 지정 됩니다.

 

Range ( "1 : 5") 또는 Range ( "1 : 1", "5 : 5")
이렇게 하면, 1 행부터 5 행까지의 5 행의 지정 됩니다.

 


4. 특정 셀만 지정

 

Range ( "A1, C5")


이 지정은 셀 A1과 C5 셀 (2 개의 셀)에만 적용됩니다.


"(큰 따옴표)에서 , (쉼표)로 구분 합니다.


이 경우 셀의 개수는 얼마든지 지정할 수 있습니다. 그러나 제한이 있습니다.

 


더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 

오늘 포스팅은 여기까지 하겠습니다.

반응형

댓글()

기초부터 실전까지 VBA 엑셀7 - Const 상수 선언

IT 관련 지식/VBA 공부|2019. 10. 20. 18:24
반응형
728x170

<VBA 엑셀6 - Const 상수 선언>

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

 

오늘은 상수를 선언하는 방법을 알려드리겠습니다.

 

상수는 변수와 달리 코딩 중간에 수를 변경할 수 없습니다.

 

처음에 선언을 한 후에는 그것을 이용할 뿐이죠.

 

그럼 상수를 뭐하러 사용하느냐? 다음과 같은 상황에서 사용합니다.

 

  • 외우기 힘든 긴 숫자
  • 숫자에 이름을 붙임으로써 가독성이 좋아짐
  • 자주 사용하는 숫자

1. 상수 선언 방법

 

변수를 선언 하는 방법과 거의 동일합니다.

 

Const 상수 이름 As [데이터 형] = "상수 값"

 

[데이터 형]의 경우 변수를 선언할 때 사용하는 데이터 형과 동일한 것을 사용하시면 됩니다.

 

예를 들어

 

Const a As Long = 3

 

위와 같이 지정하면 "a"는 3이라는 숫자를 의미하는 상수가 됩니다.

 

또한 프로그래밍을 수정할 때 모든 숫자를 수정하는 것이 아니라 

 

선언한 상수의 수만 수정하면 모든 숫자가 바뀌므로 프로그래밍의 "보수성"도 높아집니다.

 

300x250

참고로 날짜를 상수로 지정할 경우 아래와 같이 선언해야 인식을 합니다.

 

Const 날짜 상수 As Date = #12/28/2011#

 

꼭 #날짜# 처럼 "#"을 입력해주어야 합니다.

 

그럼 상수 선언에 대한 이야기는 여기까지 하겠습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

반응형

댓글()