[데이터처리와활용] 10강. 엑셀 VBA 반복문, 배열, 함수 완전 정복

엑셀 VBA 반복문, 배열, 함수 완전 정복 — 프로그래밍 자동화 기초편

안녕하세요! 이번 포스팅에서는 엑셀 VBA 언어구조 II 강의 내용을 기초부터 차근차근 정리해보겠습니다.
엑셀 자동화를 위해 꼭 알아야 할 반복문, 배열, 대화형 상자, 프로시저/함수 작성법을 실습 예제와 함께 쉽고 친절하게 설명드릴 테니 끝까지 읽어보세요!

1. 반복문(Loop)

반복문은 특정 조건에서 명령을 반복 실행하는 구문입니다.

Do-Loop 문

  • Do While 조건: 조건이 참일 때 반복

  • Do Until 조건: 조건이 거짓일 때 반복

예제

1
2
3
4
5
= 1
Do While i < 10
Cells(i, 1= i * 10
= i + 1
Loop
cs

For Each 문

범위나 배열의 모든 요소에 대해 반복 실행

1
2
3
For Each cell In Range(“A1:A5”)
cell.Value = cell.Value ^ 2
Next
cs

For-Next 문

일정 범위의 숫자만큼 반복

1
2
3
For i = 1 To 5
Cells(i, 1= i * 10
Next
cs

Step 값으로 증감량 조절 가능

1
2
3
For i = 5 To 1 Step 1
Cells(i, 1= i ^ 2
Next
cs

Exit For로 반복 중단 가능

2. With 문

반복되는 개체 속성 설정을 간결하게 작성할 때 사용

예제

1
2
3
4
5
6
With Range(“A1:F6”)
.Value = 30
.Font.Bold = True
.Interior.Color = RGB(2552550)
End With
cs

3. 배열(Array)

하나의 변수 이름에 여러 값을 저장하는 자료구조입니다.

배열 선언 방법

1
2
Dim myArray(1 To 3As Integer
myArray(1= 10
cs

배열 함수

  • Array("A", "B", "C")

  • Split("A|B|C","|") : 구분자로 문자열 분리해 배열 생성

  • ReDim myArray(1 To 5) : 동적 배열 크기 설정 가능

다차원 배열

1
2
Dim myMtx(1 To 31 To 3)
myMtx(11= 10
cs

4. 대화형 상자 만들기

사용자 입력을 받거나 메시지를 표시하는 창

InputBox 함수

1
num = InputBox(“값을 입력하세요”“입력창”)
cs

MsgBox 함수

1
MsgBox “처리되었습니다!”, vbInformation, “알림”
cs

버튼/아이콘 옵션

  • vbOKOnly, vbYesNoCancel

  • vbInformation, vbQuestion

예제

1
2
3
4
response = MsgBox(“계속?”, vbYesNoCancel)
If response = vbYes Then
MsgBox “진행합니다”
End If
cs

5. 프로시저와 함수

프로시저 (Sub)

결과값 없이 특정 작업 수행

1
2
3
Sub 작업()
MsgBox “완료”
End Sub
cs

함수 (Function)

값을 반환하는 명령어 묶음

1
2
3
Function 더하기(x As Integer, y As Integer) As Integer
더하기 = x + y
End Function
cs

호출 방법

1
= 더하기(34)
cs

Call로 프로시저 호출

1
Call 작업
cs

중요 내용 정리

  • 반복문(Do, For, For Each)로 코드 간결화

  • With 문으로 반복적인 개체 속성 설정 정리

  • 배열을 활용해 데이터 묶음 처리 가능

  • 대화형 상자로 사용자 입력, 정보 제공 가능

  • 프로시저와 함수를 활용해 작업 단위 관리


객관식 문제

1. 다음 중 반복문을 중간에 빠져나오는 명령어는?
① Next
② Exit Do
③ Continue
④ Step

정답: ②
해설: Exit Do는 Do-Loop문을, Exit For는 For문을 빠져나옴.

2. 아래 코드의 실행 결과로 올바른 것은?

Dim a As Variant
a = Array(1, 2, 3)
MsgBox a(2)

① 1
② 2
③ 3
④ 에러

정답: ③
해설: 배열의 첫 인덱스는 0 → a(2)는 세 번째 값 3

3. 다음 중 MsgBox 함수에 아이콘을 지정하는 상수는?
① vbOKOnly
② vbYesNo
③ vbInformation
④ vbDefaultButton1

정답: ③
해설: vbInformation은 아이콘을, 나머지는 버튼이나 선택 기본값

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다