📌 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 → 반복문

+ Recent posts