[VBA 강의 기초편] 엑셀 자동화를 위한 VBA 문법 완전 정복 – 변수, 연산자, 조건문
안녕하세요! 이번 포스팅에서는 VBA 언어구조의 기초 개념을 정리합니다.
엑셀에서 반복 작업을 자동화하고 싶다면 VBA는 꼭 알아야 할 필수 스킬입니다.
1. VBA 모듈과 프로시저란?
모듈과 프로시저 개념
-
모듈: 여러 프로시저로 구성된 코드 단위
-
프로시저(Procedure): 실행할 작업(명령어 집합)
-
Sub
와End Sub
사이에 명령어 작성 -
MsgBox
는 메시지 창을 띄우는 함수입니다.
한 줄에 여러 명령 입력
2. 변수와 데이터 타입
변수 선언 방법
주요 데이터 타입
데이터 타입 | 설명 | 예시 값 |
---|---|---|
Integer | 정수형 | -32,768 ~ 32,767 |
Long | 큰 정수 | -21억 ~ 21억 |
Single, Double | 실수형 | 3.14 등 |
String | 문자열 | “Hello” |
Boolean | 논리값 | TRUE, FALSE |
Object | 객체 | 워크시트, 셀 등 |
Date | 날짜/시간 | 2025-06-04 |
Variant | 자동형 | 자동으로 형식 결정 |
변수명 규칙
-
첫 글자는 반드시 영문 또는 한글
-
특수문자 불가, 공백 불가
-
키워드(If, Range 등)는 변수명으로 사용할 수 없음
3. 연산자 (산술, 비교, 논리)
산술 연산자
연산자 | 설명 | 예시 |
---|---|---|
+ | 더하기 | 2 + 3 = 5 |
– | 빼기 | 5 – 2 = 3 |
* | 곱하기 | 2 * 3 = 6 |
/ | 나누기 | 5 / 2 = 2.5 |
\ | 정수 나누기 | 5 \ 2 = 2 |
^ | 거듭제곱 | 2 ^ 3 = 8 |
Mod | 나머지 | 5 Mod 2 = 1 |
비교 연산자
연산자 | 의미 | 예시 결과 |
---|---|---|
< | 작다 | TRUE |
<= | 작거나 같다 | TRUE |
> | 크다 | FALSE |
>= | 크거나 같다 | TRUE |
= | 같다 | TRUE |
<> | 같지 않다 | TRUE |
1
|
If 3 < 5 Then MsgBox “3은 5보다 작다”
|
cs |
논리 연산자
연산자 | 의미 |
---|---|
And | 모두 참 |
Or | 하나라도 참 |
Not | 부정 |
Xor | 둘 중 하나만 참 |
Eqv | 논리값이 같으면 참 |
Imp | A가 참이고 B가 거짓이면 거짓 |
1
|
If (A > B) And (B > 0) Then …
|
cs |
4. 색상과 내장 함수 활용
색상 설정 예제
1
|
Cells(1, 1).Interior.Color = RGB(255, 0, 0) ‘ 빨간색
|
cs |
대표적인 내장 함수
-
Len()
: 문자열 길이 -
LCase()
,UCase()
: 소문자/대문자 변환 -
Trim()
: 양쪽 공백 제거 -
Val()
: 문자열 → 숫자 변환 -
Now()
,Date()
,Time()
: 날짜/시간 함수
5. 조건 제어문
If – ElseIf – Else
1
2
3
4
5
6
7
|
If x > 0 Then
MsgBox “양수”
ElseIf x = 0 Then
MsgBox “제로”
Else
MsgBox “음수”
End If
|
cs |
IIf 함수 (한 줄 조건문)
1
|
Cells(1, 1) = IIf(x > 0, “양수”, “그외”)
|
cs |
Select Case
1
2
3
4
5
6
7
8
|
Select Case 점수
Case 90 To 100
MsgBox “A”
Case 80 To 89
MsgBox “B”
Case Else
MsgBox “F”
End Select
|
cs |
Choose 함수
1
|
MsgBox Choose(2, “사과”, “바나나”, “오렌지”) ‘ 바나나
|
cs |
Switch 함수
1
|
MsgBox Switch(x = 1, “One”, x = 2, “Two”, x = 3, “Three”)
|
cs |
중요 내용 정리
-
Sub~End Sub 사이에 VBA 명령 작성
-
변수는 Dim으로 선언하고 데이터 타입 지정
-
산술/논리/비교 연산자는 기본적인 연산 및 조건 제어에 필수
-
색상 및 문자열/날짜 함수로 다양하고 유용한 자동화 가능
-
조건문 (If, Select Case, IIf, Switch)은 자동화의 핵심 제어문
객관식 문제
1. 다음 중 VBA에서 문자열을 소문자로 바꾸는 함수는?
① LCase()
② UCase()
③ Str()
④ Len()
정답: ①
해설: LCase는 모든 문자를 소문자로 변환합니다.
2. 다음 중 논리연산자 And의 결과가 FALSE가 되는 경우는?
① 둘 다 참일 때
② 둘 중 하나라도 거짓일 때
③ 모두 거짓일 때
④ 참과 참일 때
정답: ②
해설: And는 모두 참이어야 TRUE입니다.
3. 아래 VBA 코드는 어떤 값을 출력하는가
MsgBox Choose(3, "A", "B", "C", "D")
① A
② B
③ C
④ D
정답: ③
해설: Choose(3, …)는 세 번째 항목인 “C”를 반환합니다.