엑셀 VBA 활용 총정리 — 매크로, 제어문, 배열, 함수, 통계분석까지 완벽정리
안녕하세요! 이번 글에서는 엑셀 VBA 강의의 마지막 강의인 엑셀 VBA 활용 총정리 내용을 기초부터 꼼꼼하게 정리해보겠습니다.
매크로 작성법, 제어문, 배열, 프로시저, 함수 작성법, 그리고 통계분석 프로그램 제작까지 한 번에 정리하는 시간이니 꼭 끝까지 따라와 주세요!
1. 매크로(Macro)란?
매크로는 여러 명령을 묶어 하나의 명령처럼 실행하는 자동화 도구입니다.
엑셀에서는 VBA로 매크로를 작성해 반복작업을 버튼이나 단축키로 쉽게 실행할 수 있습니다.
매크로 사용 설정
-
파일 → 옵션 → 리본 사용자 지정 → 개발도구 체크
-
개발도구 → 매크로 보안에서 설정 변경
절대 참조 매크로 실습
-
개발도구 → 매크로 기록
-
C2셀에
=B2^2
입력 → 드래그 복사 -
기록 중지 → VBA 코드 확인 가능
매크로 실행 버튼 만들기
-
개발도구 → 삽입 → 양식 컨트롤 → 버튼
-
버튼 생성 후 매크로 연결
2. VBA 프로그램 기본 문법
Sub 프로시저
1
2
3
|
Sub 첫발자국()
MsgBox “안녕하세요!”
End Sub
|
cs |
한 줄에 여러 명령어
1
|
i=5: j=6: MsgBox i+j
|
cs |
여러 줄 명령어 연결
1
2
|
MsgBox “반갑습니다.” & _
“좋은 하루 되세요”
|
cs |
3. 제어문
If-ElseIf-Else
1
2
3
4
5
6
7
|
If A > 0 Then
MsgBox “양수”
ElseIf A = 0 Then
MsgBox “0”
Else
MsgBox “음수”
End If
|
cs |
Select-Case 문
1
2
3
4
5
6
7
8
|
Select Case 값
Case 0
MsgBox “0”
Case 1
MsgBox “1”
Case Else
MsgBox “기타”
End Select
|
cs |
4. 반복문
Do While
1
2
3
4
5
|
i=1
Do While i<10
Cells(i,1)=i
i=i+1
Loop
|
cs |
For-Next
1
2
3
|
For i=1 To 5
Cells(i,1)=i*10
Next i
|
cs |
5. 배열
1차원 배열 선언
1
|
Dim test(9) As Integer
|
cs |
Array 함수로 선언
1
|
myArray = Array(“가”,“나”,“다”)
|
cs |
다차원 배열
1
|
Dim myMtx(1 To 3, 1 To 3)
|
cs |
Split 함수로 문자열 나누기
1
|
myArray = Split(“A|B|C”,“|”)
|
cs |
6. 프로시저와 함수 작성
프로시저
1
2
3
|
Sub myWork()
Call bgColor(1,1)
End Sub
|
cs |
함수
1
2
3
|
Function myAdd(a,b)
myAdd = a + b
End Function
|
cs |
7. 통계분석 VBA 프로그램
표준정규분포 백분위수 계산
1
2
3
|
prob = InputBox(“누적확률값을 입력하세요”)
percentile = Application.NormSInv(prob)
MsgBox “백분위수: “ & percentile
|
cs |
표준정규분포(평균 0, 표준편차 1)의 누적확률값(prob)을 넣으면
그에 해당하는 Z값(백분위수)를 반환.
중요 내용 정리
-
매크로로 반복 작업 자동화
-
If-Else, Select-Case로 조건 제어
-
Do While, For-Next 반복문으로 반복 처리
-
배열로 데이터 집합 관리
-
프로시저/함수로 명령어 묶음 구성
-
VBA 통계분석으로 실무 자동화 가능
객관식 문제
1. VBA에서 매크로를 실행하려면 가장 먼저 어디서 설정을 변경해야 하는가?
① 파일 → 인쇄
② 보기 → 매크로
③ 파일 → 옵션 → 리본 사용자 지정
④ 홈 → 찾기 및 선택
정답: ③
2. Select-Case문에서 Case Else의 역할은?
① 오류 방지
② 아무것도 없을 때 기본값 실행
③ 변수 초기화
④ 프로그램 종료
정답: ②
3. 다음 중 3×3 행렬형 배열을 선언하는 방법은?
① Dim A(3,3)
② Dim A(1 To 3, 1 To 3)
③ Dim A(3)
④ Dim A As Array
정답: ②