엑셀 VBA 반복문, 배열, 함수 완전 정복 — 프로그래밍 자동화 기초편
안녕하세요! 이번 포스팅에서는 엑셀 VBA 언어구조 II 강의 내용을 기초부터 차근차근 정리해보겠습니다.
엑셀 자동화를 위해 꼭 알아야 할 반복문, 배열, 대화형 상자, 프로시저/함수 작성법을 실습 예제와 함께 쉽고 친절하게 설명드릴 테니 끝까지 읽어보세요!
1. 반복문(Loop)
반복문은 특정 조건에서 명령을 반복 실행하는 구문입니다.
Do-Loop 문
-
Do While 조건: 조건이 참일 때 반복
-
Do Until 조건: 조건이 거짓일 때 반복
예제
1
2
3
4
5
|
i = 1
Do While i < 10
Cells(i, 1) = i * 10
i = 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(255, 255, 0)
End With
|
cs |
3. 배열(Array)
하나의 변수 이름에 여러 값을 저장하는 자료구조입니다.
배열 선언 방법
1
2
|
Dim myArray(1 To 3) As Integer
myArray(1) = 10
|
cs |
배열 함수
-
Array("A", "B", "C")
-
Split("A|B|C","|")
: 구분자로 문자열 분리해 배열 생성 -
ReDim myArray(1 To 5)
: 동적 배열 크기 설정 가능
다차원 배열
1
2
|
Dim myMtx(1 To 3, 1 To 3)
myMtx(1, 1) = 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
|
a = 더하기(3, 4)
|
cs |
Call로 프로시저 호출
1
|
Call 작업
|
cs |
중요 내용 정리
-
반복문(Do, For, For Each)로 코드 간결화
-
With 문으로 반복적인 개체 속성 설정 정리
-
배열을 활용해 데이터 묶음 처리 가능
-
대화형 상자로 사용자 입력, 정보 제공 가능
-
프로시저와 함수를 활용해 작업 단위 관리
객관식 문제
1. 다음 중 반복문을 중간에 빠져나오는 명령어는?
① Next
② Exit Do
③ Continue
④ Step
정답: ②
해설: Exit Do는 Do-Loop문을, Exit For는 For문을 빠져나옴.
2. 아래 코드의 실행 결과로 올바른 것은?
① 1
② 2
③ 3
④ 에러
정답: ③
해설: 배열의 첫 인덱스는 0 → a(2)는 세 번째 값 3
3. 다음 중 MsgBox 함수에 아이콘을 지정하는 상수는?
① vbOKOnly
② vbYesNo
③ vbInformation
④ vbDefaultButton1
정답: ③
해설: vbInformation은 아이콘을, 나머지는 버튼이나 선택 기본값