📌 VBA 기본 문법 총정리
1. Sub: 서브 프로시저 (Sub Procedure)
✅ 개념
- Sub는 VBA에서 특정 작업을 수행하는 코드 블록(프로시저)를 정의할 때 사용합니다.
- Sub로 시작하여 End Sub으로 끝나며, 호출하면 코드가 실행됩니다.
- 반환값이 없는 함수라고 생각하면 됩니다.
✅ 기본 문법
Sub 프로시저이름()
' 실행할 코드
End Sub
✅ 예제: 메시지 박스 출력
Sub SayHello()
MsgBox "안녕하세요! VBA를 배우고 있습니다."
End Sub
💡 실행 방법:
VBA 편집기(ALT + F11)에서 코드를 입력하고, SayHello를 실행하면 메시지 박스에 "안녕하세요! VBA를 배우고 있습니다."가 표시됩니다.
2. Dim: 변수 선언 (Declare In Memory)
✅ 개념
- Dim은 변수를 선언할 때 사용됩니다.
- VBA에서 변수를 사용할 때 반드시 선언하지 않아도 되지만, 명확한 코드를 위해 변수 선언을 권장합니다.
- 특정 데이터 타입을 지정하여 메모리를 효율적으로 사용할 수 있습니다.
✅ 기본 문법
Dim 변수이름 As 데이터타입
✅ 예제: 변수 선언 후 사용
Sub ShowAge()
Dim age As Integer ' 정수형 변수 선언
age = 25
MsgBox "당신의 나이는 " & age & "세 입니다."
End Sub
💡 설명:
- Dim age As Integer → age 변수를 정수형(Integer)로 선언
- age = 25 → 변수를 25로 설정
- MsgBox "당신의 나이는 " & age & "세 입니다." → 결과 출력
✅ 주요 데이터 타입
데이터 타입 크기 설명
Integer | 2바이트 | -32,768 ~ 32,767 정수 |
Long | 4바이트 | 더 큰 정수값 |
Single | 4바이트 | 소수점이 있는 실수 |
Double | 8바이트 | 더 정밀한 실수 |
String | 가변 | 문자열 저장 |
Boolean | 2바이트 | True 또는 False 값 |
3. Set: 객체(Object) 변수 할당
✅ 개념
- Set은 객체(Object) 변수를 할당할 때 사용합니다.
- Dim으로 선언한 변수가 객체 타입일 경우, Set을 사용해야 합니다.
- 예를 들어, Workbook, Worksheet, Range 같은 엑셀 객체를 다룰 때 필수적으로 사용됩니다.
✅ 기본 문법
Dim 변수이름 As Object
Set 변수이름 = 객체
✅ 예제: 특정 워크시트 참조하기
Sub SelectSheet()
Dim ws As Worksheet ' 워크시트 변수 선언
Set ws = ThisWorkbook.Sheets("Sheet1") ' "Sheet1"을 ws 변수에 할당
ws.Activate ' 해당 워크시트 활성화
End Sub
💡 설명:
- Dim ws As Worksheet → ws 변수를 워크시트 객체로 선언
- Set ws = ThisWorkbook.Sheets("Sheet1") → Sheet1을 ws에 할당
- ws.Activate → 해당 시트를 활성화
✅ Set과 Dim 차이점
- Dim은 일반 변수(숫자, 문자열 등) 선언 시 사용
- Set은 객체를 변수에 할당할 때 필수적으로 사용
4. Function: 값 반환이 가능한 프로시저
✅ 개념
- Sub와 비슷하지만, Function은 반환값이 있는 함수입니다.
- 특정 연산을 수행하고, 결과값을 돌려줄 때 사용합니다.
✅ 기본 문법
Function 함수이름(매개변수) As 데이터타입
' 실행할 코드
함수이름 = 결과값
End Function
✅ 예제: 두 숫자의 합을 반환하는 함수
Function AddNumbers(a As Integer, b As Integer) As Integer
AddNumbers = a + b
End Function
Sub TestFunction()
Dim result As Integer
result = AddNumbers(5, 10)
MsgBox "결과: " & result
End Sub
💡 설명:
- Function AddNumbers(a As Integer, b As Integer) As Integer → 두 개의 정수를 받아 합을 반환
- AddNumbers = a + b → 계산된 결과를 반환
- result = AddNumbers(5, 10) → 5 + 10 = 15 값을 저장
- MsgBox "결과: " & result → 결과 출력
5. If 조건문과 For 반복문
✅ If 조건문 예제
Sub CheckNumber()
Dim num As Integer
num = 10
If num > 5 Then
MsgBox "숫자가 5보다 큽니다."
Else
MsgBox "숫자가 5 이하입니다."
End If
End Sub
✅ For 반복문 예제
Sub LoopExample()
Dim i As Integer
For i = 1 To 5
MsgBox "반복 횟수: " & i
Next i
End Sub
💡 설명:
- For i = 1 To 5 → 1부터 5까지 반복
- MsgBox "반복 횟수: " & i → 현재 반복 횟수 출력
- Next i → 다음 반복 실행
📌 마무리
지금까지 VBA에서 자주 쓰이는 기본 문법(Sub, Dim, Set, Function, If, For)을 정리했습니다.
🔥 핵심 요약
- Sub → 프로시저(반환값 없음)
- Dim → 변수 선언
- Set → 객체 변수 할당
- Function → 값을 반환하는 함수
- If ~ Then → 조건문
- For ~ Next → 반복문