1. 조건문
- 조건문 : 지정한 조건에 만족할 때와 그렇지 않을 때, 반환하는 결과를 다르게 설정할 때 사용하는 명령문

 

                    1-1) IF문
- IF 문은 가장 기본적인 조건문으로 가장 많이 사용되며, 3가지 형식으로 사용 가능

1-1-1) 조건이 만족할 때만 실행

IF (조건식) Then
조건식을 판단한 결과가 TRUE일때만 실행할 명령 수행문
End If

▷ 예시 - 평균이 80 이상이면 '합격' 출력

Sub 합격여부1()
Sheet("조건문1").Select
If Range("e4").Valye >= 80 Then
Range("f4").Value = "합격"
End If
End Sub

1-1-2) 조건에 만족할 때와 조건에 만족하지 않을 때 다르게 실행

IF (조건식) Then
조건식을 판단한 결과가 TRUE일 때 실행할 명령 수행문
Else
조건식을 판단한 결과가 FALSE일 때 실행할 명령 수행문
End If

▷ 예시 - 평균이 80 이상이면 '합격' 그렇지 않으면 '불합격' 출력

Sub 합격여부2()
Sheet("조건문1").Select
If Range("e4").Valye >= 80 Then
Range("f4").Value = "합격"
Else
Range("f4").Value = "불합격"
End If
End Sub

1-1-3) 2개 이상의 조건을 판단하여 각 조건의 판단 결과에 따라 다른 결과를 실행

IF (조건식1) Then
조건식1의 판단 결과가 TRUE일 때 실행할 실행문
ElseIf (조건식2) Then
조건식2의 판단 결과가 TRUE일 때 실행할 실행문
[ElseIf 문 조건식 만큼 반복]
Else
지정한 조건식 모두를 만족하지 않았을 때 실행할 실행문
End If

▷ 예시 - 평균이 90 이상이면 'A', 80점 이상이면, 'B', 70점 이상이면, 'C', 60점 이상이면, 'D', 나머지는 'F' 표시

Sub 학점1()
Sheet("조건문1").Select
If Range("e4").Valye >=90 Then
Range("g4").Value = "A"
ElseIf Range("e4").Valye >=80 Then
Range("g4").Value = "B"
ElseIf Range("e4").Valye >=70 Then
Range("g4").Value = "C"
ElseIf Range("e4").Valye >=60 Then
Range("g4").Value = "D"
Else
Range("g4").Value = "F"
End If
End Sub

- IF 문의 조건 연산자
▷ IF 문에서 조건식을 지정할 때 And, Or, Not 연산자를 사용 가능하다.
▷ AND : 지정한 조건을 모두 만족하는 경우를 판단함
▷ OR : 지정한 조건 중, 하나만 만족해도 되는 경우를 판단함
▷ NOT : 지정한 조건 아닌 경우를 판단함
조건이 많아지면 If문 보다는 Select Case문을 사용하는 것이 좀 더 효율적이다.

 

                    1-2) Select Case문
- 조건의 판단 결과에 따라 다른 동작을 수행하는 조건문
- 여러 개의 조건을 처리해야 하는 경우 더 적합함

 

1-2-1) Select Case 문의 형식

Select Case 식 (또는 변수)
Case조건1
조건1이 만족할 때 실행할 실행문
Case조건2
조건2가 만족할 때 실행할 실행문
Case조건3
조건3이 만족할 때 실행할 실행문
[Case 조건 반복]
Case Else
지정한 조건이 모두 만족하지 않았을 때 실행할 실행문
End Select

▷ 예시 - 평균이 90 이상이면 'A', 80점 이상이면, 'B', 70점 이상이면, 'C', 60점 이상이면, 'D', 나머지는 'F' 표시

Sub 학점2()
Sheet("조건문2").Select
Select Case Range("e4")
Case Is >= 90
Range("g4") = "A"
Case Is >= 80
Range("g4") = "B"
Case Is >= 70
Range("g4") = "C"
Case Is >= 60
Range("g4") = "D"
Case Else
Range("g4") = "F"
End Select
End Sub

 

1-2-2) 조건을 지정하는 다양한 방법

▷ 숫자 값의 범위를 조건으로 지정하는 경우
- To 키워드를 사용

Select Case Range("A1").Value
Case 1 To 10
Msgbox "1~10 사이 값입니다."
Case11 To 20
Msgbox "11~20 사이 값입니다."
CaseElse
Msgbox "0~20 이외의 값입니다."
End Select

▷ OR 조건을 지정하는 경우
- 조건에 쉼표(,) 사용

Select Case Range("A1").Value
Case 1, 3, 5
Msgbox "1, 3, 5 중 하나의 값입니다."
Case 2, 4, 6
Msgbox "2, 4, 6 중 하나의 값입니다."
Case Else
Msgbox "1,2,3,4,5,6 이외의 값입니다."
End Select

▷ 비교 연산자를 사용하는 경우
- 연산자 앞에 Is 사용

Select Case Range("A1").Value
Case Is >10
Msgbox "10보다 큰 값입니다."
Case Is < 30
Msgbox "30보다 작은 값입니다."
Case Else
End Select

 

                              2. 반복문
반복문 : 작성한 코드를 반복해서 실행할 때 사용하는 명령문
▷ 예시
합격 여부를 마지막 영역까지 반복 출력하고자 할 때

 

                    2-1) For문

2-1-1) For Next 문
- 지정한 횟수만큼 코드를 반복해서 실행하고자 할 때 사용

For 카운터변수 = 시작수 To 끝수 [Step 증감값]
반복해서 실행할 실행문
Next [카운터변수]

- 아래 For 문은 I = 10, 9, 8~1순으로 실행됨

For 카운터변수 = 끝수 To 시작수 Step-1[Step 가감값]
반복해서 실행할 실행문
Next [카운터변수]

- Exit For 문은 순환도중 For 순환을 즉시 중단시킴

▷ 예시1 - 평균이 80 이상이면 '합격', 그렇지 않으면 '불합격'

Sub 합격여부1() 'For Next 문
Dim i As Integer
Sheet("반복문1").Select
For i = 4 To 13 Step 1
If Range("e" & i).Value >= 80 Then
Range("f" & i).Value = "합격"
Range("e" & i).Font.Color = vbBlue
Else
Range("f" & i).Value = "불합격"
Range("e" & i).Font.Color = vbRed
Enf If
Next i
End Sub

▷ 예시2 - 평균이 80 이상이면 '합격', 그렇지 않으면 '불합격'

Sub 합격여부1_1() 'For Next 문
Dim i As Integer
Dim rCnt As Integer
rCnt = Range("b4").CurrentRegion.Rows.Count +2
Sheet("반복문1").Select
For i = 4 To rCnt
If Range("e" & i).Value >= 80 Then
Range("f" & i).Value = "합격"
Range("e" & i).Font.Color = vbBlue
Else
Range("f" & i).Value = "불합격"
Range("e" & i).Font.Color = vbRed
Enf If
Next i
End Sub

2-1-2) For Each Next문
- 셀 영역,워크시트, 여러 통합 문서처럼 개체들의 집합(컬렉션)의 개별 요소에 대한 반복 작업을 실행 해야 할 때 사용
(예 : 워크시트를 반복하면서 각 시트명을 셀에 입력하는 경우, 선택한 범위의 각 셀을 순환하면서 원하는 셀 서식을 지정하는 경우)

For Each 개체 변수 In 컬렉션
실행문
Next

▷ 예시 - workbook에 있는 모든 피봇테이블을 제거함

Sub 테이블 제거()
Dim sht As Worksheet
Dim pvt As PivotTable
For Each sht In ActiveWorkbook.Worksheets
For Each pvt In sht.PivotTables
pvt.TableRange2.Clear
Next pvt
Next sht
End Sub

위에서 ActiveWorkbook.Worksheets은 현재 Workbook에 있는 Worksheet 전체를 가르키는 집합개체(컬렉션) 이다.
이에 반해 sht.PivotTables는 현재 worksheet에 있는 피봇테이블 전체를 대변하는 집합개체(컬렉션) 이다.
즉 우리가 일일이 지정하지 않더라도 자동적으로 모든 객체를 대상으로 순환해 주는 매우 편리한 제어문이다.

 

                    2-2) Do Loop문

- Do Loop문에는 Do While Loop 와 Do Until Loop 두가지가 있다.

2-2-1) Do While Loop
- 지정한 조건이 만족하는 동안 실행문을 반복

Do While 조건식
실행문
Loop

위는 While이 앞에 나오면 조건이 맞는 경우에만 명령수행을 하고

Do
실행문
Loop While 조건식

위는 한번 명령수행을 하고 이후부터는 조건이 맞을 때만 순환하는 구조이다.

▷ 예시 - A1~A6 셀에 값이 입력되어 있는데 B열에 A열의 값에 10을 더한 값을 넣는다.

Dim i As Integer
i = 1
Do While Cells(i, 1).Value <> ""
Cells(i, 2).Value = Cells(i, 1).Value + 10
i = i + 1
Loop

위에서 Do While Cells(i, 1).Value <> "" : 셀의 내용이 공백이 아닐 경우 아래 명령을 수행한다.

 

2-2-2) Do Until Loop
- 지정한 조건이 만족할 때까지 실행문을 반복

Do Until 조건식
실행문
Loop

▷ 예시 - A1~A6 셀에 값이 입력되어 있는데 B열에 A열의 값에 10을 더한 값을 넣는다.

Dim i As Integer
i = 1
Do Until i > 10
Result = Result + i
i = i + 1
Loop

MsgBox Result

위에서 Do Until i > 10 : i가 10보다 커질 때까지 더해 나가라는 뜻이다.

 

                              3. 여러가지

 

                    3-1) break문

Exit For, Exit While, Exit Do

 

                    3-2) Continue문

Continue While, Continue For, Contine Do

 

출처: [학습(공부)하는 블로그]

'소프트웨어 > Excel' 카테고리의 다른 글

VBA 정리  (0) 2021.11.20
VBA 개념  (0) 2021.11.20
VBA 문법  (0) 2021.11.20
VBA 개체  (0) 2021.09.09
VBA 함수  (0) 2021.09.09

+ Recent posts