기초부터 실전까지 VBA 엑셀11 - 조건문 if

반응형
728x170

오늘은 프로그래밍의 진정한 꽃 "조건문"에 대해 배워보겠습니다.

 

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

 

이번 강의는 맨 밑에 코딩을 첨부했습니다.


1. if 조건문의 기본 형태

 

If 조건식 Then
  Ture 일 때 조건식을 만족하는 경우의 처리
Else
  Flase 일 때 조건식을 만족하지 않는 경우의 처리
End If

 

위에서 Else는 선택사항입니다.

 

즉, If 만 사용해도 조건문으로써 에러없이 사용할 수 있습니다.


2. If문에 사용가능한 조건문

 

비교 연산자

비교 연산자 의미
= 같음
<> 같지 않음
> 초과
> = 이상
< 미만
<= 이하

 

논리 연산자

논리 연산자 의미
And 논리적
Or 논리합

 

사실 "논리 연산자"는 종류가 더 많지만 거의 사용하지 않으므로...

 

위의 2개만 소개하겠습니다.

300x250

3. If문 사용 예시

Sub if1()

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

End Sub

 

<결과>


4. 응용 - If문의 중첩

 

Sub if2()

If Cells(1, 1) >= 100 Then
    If Cells(1, 1) >= 200 Then
        Cells(1, 2) = "A"    '>= 200
    Else
        Cells(1, 2) = "B"    '>=100 AND < 200
    End If
    
Else
    
    If Cells(1, 1) >= 50 Then
        Cells(1, 2) = "C"    '< 100 AND >= 50
    Else
        Cells(1, 2) = "D"    '< 50
    End If
End If

End Sub

조금 해석을 하자면

 

① 먼저 "A1"에 들은 값이 100 "이상"인지 확인합니다.

② 그리고 200 이상이면 "A", 200 밑이면 "B"를 입력합니다.

③ 그 이외 (100 "미만일 때)의 경우를 정의합니다.

④ 이 또한 100~50 / 50 미만 일 때의 경우 각각 "C", "D"로 정의합니다.

 

위와 같이 If문을 중첩해서 사용할 수 도 있습니다.

 

For 반복문과 마찬가지로 2번정도만 중첩해서 사용하면 됩니다!

 

아래에 위에서 사용한 코딩을 남겨놓습니다.

 

잘 안되는 분은 다운로드 받아서 뭐가 다른지 한번 확인해보세요!

 

if문.txt
0.00MB


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

 

오늘은 여기까지만 하겠습니다.!

반응형

댓글()

기초부터 실전까지 VBA 엑셀10 - 마지막 행 얻기(End)

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

< VBA 엑셀10 - 마지막 행 얻기(End)>

 

데이터의 마지막 셀로 갈 수 있는 방법중 하나인 End에 대해서 알아보겠습니다.

 

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

 

먼저 프로그래밍을 하기 전에 다음과 같은 엑셀 시트를 준비해야합니다.

 

A열에서는 첫 번째 줄부터 10번째 줄까지 연속적으로 숫자가 입력되어 있습니다.

 

B열에서는 첫 번째 줄부터 숫자가 이어지다가 5번째 줄에서 한번 끊기게 됩니다.

 

이번에는 "A1"셀을 선택한 후에 Ctrl+↓(방향키 아래)를 눌러보시기 바랍니다.

그럼 아래와 같은 그림처럼 "A10" 셀이 선택되어져 있는 모습일거라 생각합니다.

이번에는 "B1"를 선택한 후 똑같이 Ctrl+↓(방향키 아래)을 눌러보시기 바랍니다.

"A1"와 다르게 네 번째 행에서 선택이 멈춥니다.

Ctrl+"방향키"의 기능은 연속적인 데이터가 있을 때 그 방향의 마지막 데이터로 커서를 이동시켜줍니다.

 

이번에는 이것을 코딩으로 표현할 수 있는 방법에 대해 이야기 해보겠습니다.

 

(위에서 만든 데이터는 그대로 사용할 예정이니 놔두시면됩니다.)

 

또한 가능한한 이제부터 VBA에서 셀을 선택할 때는 Cells를 사용하겠습니다.

300x250

 


1. End 사용하기

 

Cells (1, 1) .End (xlDown)

 

위에서 했던 Ctrl+↓(방향키 아래)와 같은 기능을 가진 코드입니다.

 

밑으로 향하는 xlDown 이외에도 다음과 같은 기능을 사용할 수 있습니다.

 

xlUp : ↑ 위로
xlDown : ↓ 아래로
xlToLeft : ← 왼쪽
xlToRight : → 오른쪽

 

다음과 같이 코딩을 하면 위에서 했던 것이랑 똑같은 결과를 얻을 수 있습니다.

Sub row1() 

    Dim a As String, b As String 
     
    a = Cells(1, 1).End(xlDown) 
     
    Cells(11, 1) = a 
     
    b = Cells(1, 2).End(xlDown) 
     
    Cells(11, 2) = b 
     
End Sub

약간 해석을 하자면 

① 문자열을 받을 수 있는 변수 a, b를 만듭니다

② "A1"의 마지막 행에 있는 데이터를 a에 저장합니다.

③ "A11"에 저장한 a 데이터를 입력합니다.

④ "B1" 또한 같은 내용을 반복합니다.

 

 

 

 

 

<결과>

 

위에서 했던거 처럼 같은 결과를 얻을 수 있습니다.

 


2. 마지막 행의 수 얻기 - .Row

 

마지막으로 그 행의 숫자를 얻을 수 있는 코드를 알려주고 끝내겠습니다.

 

위에서 배웠던

 

Cells (1, 1) .End (xlDown)

 

이거에 .Row를 붙여서 

 

Cells (1, 1) .End (xlDown).Row

 

라고 하면 끝입니다.

 

아래와 같이 프로그래밍을 할 경우 결과는 위와 동일하지만

Sub row2()

    Dim a As String, b As String
    
    a = Cells(1, 1).End(xlDown).Row
    
    Cells(11, 1) = a
    
End Sub

여기서 "A11"에 출력되는 "10은 "A10" 셀에 있는 "10"이 아닙니다.

 

A"10"을 의미하는 10입니다.

 

즉, 행의 숫자를 얻을 수 있는게 

 

Cells (1, 1) .End (xlDown).Row

 

입니다.

 


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

오늘은 여기까지 하겠습니다!

반응형

댓글()

기초부터 실전까지 VBA 엑셀9 - 반복문 Do ~ Loop

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

<VBA 엑셀9 - 반복문 Do ~ Loop>

 

이번에는 또 다른 반복문인 Loop에 대해 알아보겠습니다.

 

For 반복문과 Do 반복문의 차이점을 설명하자면

 

For 반복문 : 지정 횟수만큼 반복한다.

 

Do 반복문 : 주어진 조건만큼 반복한다.

 

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

 


1. Do 반복문의 기본 형태

 

Do [{While | Until} condition]
  [statements]
  [Exit Do]
  [statements]

Loop

 

각 구문의 뜻을 설명하면 아래와 같습니다.

 

condition 선택 사항입니다.
참 (True) 또는 거짓 (False)을 평가하는 수식 또는 문자열 식을 지정합니다.
인수 condition 값이 Null 인 경우, 인수 condition은 거짓 (False)로 간주됩니다.
statements 인수 condition이 참 (True) 인 동안 또는 인수 condition이 참 (True)로 될 때까지 반복 실행되는
여러 행의 문을 작성합니다.

 

condition에서 사용할 수 있는 조건의 경우 아래와 같습니다.

 

비교 연산자 의미
= 같음
<> 같지 않음
> 초과
> = 이상
< 미만
<= 이하
논리 연산자 의미
And 논리적
Or 논리합

 

다음 예문을 통해 좀 더 상세히 알아보겠습니다.

 

참고로 기초 레벨의 코딩의 경우 코드를 올리지 않겠습니다.

 

왜냐하면 직접 코딩을 하면서 익히는게 더 빨리 외워지고 프로그래밍을 하는 맛이 있거든요 ㅎㅎ


2. Do 조건문의 예시

 

Sub Loop1()
    Dim i
    i = 1
    Do While i <= 10
        Cells(i, 1) = 1
        i = i + 1
    Loop
End Sub

 

위의 VBA 코딩을 실행시켜보면 아래와 같은 결과가 나옵니다.

위에서 While의 의미를 설명하자면

 

300x250

 

<"i"가 10이하일 "동안" 계속 반복해라> 라는 의미입니다.

 

결과는 같지만 조금 다른 예를 한번 더 보겠습니다.


Sub Loop2()

    Dim i
    i = 1
    Do Until i > 10
        Cells(i, 1) = 1
        i = i + 1
    Loop
End Sub

 

이를 실행해보면 위와 똑같은 결과가 나오게 됩니다.

 

여기서 Until의 뜻은

 

<"i"가 10을 넘을 때"까지" 계속해라>라는 의미입니다.

 

뭔가 차이점이 느껴지시나요? ㅎㅎ

 

사실 직접 VBA 프로그래밍을 할 여러분들은 While이나 Until 중 하나만 중점적으로 사용해도 무방합니다.

 


3. Exti Do

 

마지막으로 Loop 반복문을 탈출하는 코딩에 대해 알아보고 마치겠습니다.

 

For 반복문과 마찬가지로 Loop 반복문 또한 탈출하는 코딩이 있습니다.

 

이번 에는 아래와 같이 VBA 코딩을 해봅니다.

 

Sub Loop3()

    Dim i
    i = 1
    Do Until i > 10
        Cells(i, 1) = 1
        i = i + 1

        Exit Do
    Loop
End Sub

 

이를 실행하면 그 결과는 아래와 같이 됩니다.

 

한번만 실행하고 Do ~ Loop 반복문을 끝내는 모습입니다.

 


이것으로 반복문에 대한 설명은 모두 끝났습니다.

 

다음에는 또 다른 수업으로 찾아 뵙겠습니다.

 

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

반응형

댓글()

기초부터 실전까지 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 자료를 보고 싶다면 ☜ 여기!!

반응형

댓글()