본문 바로가기
PROGRAMMING/EXCEL&ACCESS

[엑셀 VBA] 엑셀 VBA 기초 문법_변수의 개념 정리

by Hey Nary 2025. 2. 15.
728x90
반응형

 

엑셀 VBA(Visual Basic for Applications)에서 변수(Variable) 는 데이터를 저장하는 메모리 공간입니다.

변수를 활용하면 코드가 더 효율적이고 가독성이 좋아집니다.

이번 글에서는 VBA에서 변수를 선언하고 사용하는 방법을 상세히 설명하겠습니다.


1️⃣ 변수란 무엇인가?

변수는 데이터를 저장할 수 있는 공간으로, 숫자, 문자, 날짜 등 다양한 값을 저장할 수 있습니다.
예를 들어, 사용자의 입력 값을 저장하거나 계산 결과를 보관할 때 변수를 사용할 수 있습니다.

 

  • 변수의 종류
    • 모듈 수준변수 : 해당 모듈 내의 모든 서브 프로시저 또는 함수에서 사용할 수 있습니다. 
    • 프로시저 수준변수 : 변수를 선언한 동일한 프로시저에서만 변수를 사용할 수 있습니다.
728x90

2️⃣ VBA 변수 선언 방법

VBA에서 변수를 선언하는 기본 문법은 다음과 같습니다.

Dim 변수이름 As 데이터형
  • Dim(Dimension): 변수를 선언할 때 사용하는 선언문
  • 변수이름: 저장할 값을 식별하는 이름
    • 변수명 규칙 (매크로 이름 규칙과 같다)
      • 첫 글자는 문자만 가능
      • 공백, 특수문자는 불가능하나 Underbar '_' 는 가능
  • As 데이터형: 변수의 데이터 타입을 지정

📌 예제 1: 변수 선언

'모듈 수준변수'
Dim 파일 As Workbook

'프로시저 수준변수'
Sub vba()

Dim score As Integer '정수를 저장하는 변수 
Dim name As String '문자열을 저장하는 변수 
Dim isPassed As Boolean '참/거짓을 저장하는 변수

End Sub

3️⃣ VBA의 주요 데이터 타입

VBA에서 사용할 수 있는 데이터 타입은 다양합니다. 다음 표를 참고하세요.

데이터 타입 자료형 크기 범위 권장 접두사
정수형 Integer 2 바이트 -32,768 ~ 32,767 (정수) Int / I
정수형 Long 4 바이트 -2,147,483,648 ~ 2,147,483,647 (큰 정수) Lng / L
실수형 Single 4 바이트 소수점을 포함한 숫자 (단정도 실수) Sng / Si
실수형 Double 8 바이트 더 정밀한 실수 (배정도 실수) Dbl / Do
문자형 String 가변 문자 데이터 저장 Str / St
불리안형 Boolean 2 바이트 True 또는 False Bln
개체형 Object Range, Worksheet, Workbook Obj
날짜형 Date 8 바이트 날짜 및 시간 저장 Yr / Mon / Day / Time
가변형 Variant 가변 모든 데이터 유형 저장 가능 (권장하지 않음) Var / V

 

  • VBA 에서 권장 접두사를 사용하는 경우 : 변수이름!
Dim blnIsActive As Boolean
Dim blnHasPermission As Boolean

'→변수명 앞에 접두사를 붙여 데이터명을 유추할 수 있게 함

4️⃣ 변수의 기본 사용법

변수는 선언 후 값을 할당하고 사용할 수 있습니다.

📌 예제 2: 변수에 값 저장하고 출력하기

Sub 변수사용예제()
    Dim age As Integer
    age = 25
    MsgBox "나이는 " & age & "세 입니다."
End Sub

👉 age 변수에 25를 저장하고 메시지 박스로 출력하는 코드입니다.


5️⃣ 변수를 선언하는 다양한 방법

✅ 1) 여러 변수를 한 줄에 선언

Dim x As Integer, y As Double, name As String
 

✅ 2) 변수를 Variant 타입으로 선언 (비추천)

Dim anyValue

👉 데이터 타입을 지정하지 않으면 기본적으로 Variant 타입이 되며, 성능이 떨어질 수 있음.

✅ 3) Static 키워드를 사용하여 유지되는 변수 선언

Sub 테스트()
    Static count As Integer
    count = count + 1
    MsgBox "현재 카운트: " & count
End Sub

👉 Static 변수를 사용하면 매크로 실행이 끝나도 값이 유지됩니다.

✅ 4) Public 또는 Private 변수를 선언 (모듈 수준 변수)

Public total As Integer ' 전체 모듈에서 사용 가능
Private secretCode As String ' 현재 모듈에서만 사용 가능

 

👉 Public 변수는 프로젝트 전체에서 접근 가능하며, Private 변수는 선언된 모듈에서만 사용 가능!

     사용 방법은 예제 3을 참고하세요!


6️⃣ 변수 선언을 강제하는 Option Explicit

변수를 사용할 때 오타를 방지하고 정확한 코드 작성을 위해 변수 선언을 강제할 수 있습니다.
코드의 맨 위에 다음을 추가하세요.

Option Explicit

이렇게 하면 선언되지 않은 변수를 사용하면 오류가 발생합니다.

사용 방법은 예제 3을 참고하세요!


7️⃣ 변수의 범위(Scope)

변수는 선언된 위치에 따라 사용 가능한 범위(Scope) 가 다릅니다.

변수 수준 선언 위치 키워드 사용 범위
프로시저 수준 변수 프로시저 내부 Dim, Static 해당 프로시저 내에서만 사용 가능
모듈 수준 변수 모듈 상단 Dim, Private 해당 모듈에서만 사용 가능
전역 변수 모듈 상단 Public 프로젝트 전체에서 사용 가능

 

이 때, 예제1 에서는 Dim을 모듈 수준변수로 사용하였는데요.

위의 표에는 Private 이 모듈에서 사용하는 모듈 수준변수로 적혀 있죠?

뭐가 맞는 걸까요?

 

정답은, " Dim 키워드는 모듈 수준과 프로시저 수준에서 모두 사용 가능합니다. "

 

Dim 키워드에 대해서는 아래 글에서 좀 더 자세히 다루겠습니다.

 

[엑셀 VBA] Dim 키워드 사용하기

📌 예제 3: 변수 범위 이해하기

Option Explicit

Public total As Integer ' 프로젝트 전체에서 사용 가능
Private secret As String ' 현재 모듈에서만 사용 가능

Sub 프로시저1()
    Dim localVar As Integer ' 해당 프로시저에서만 사용 가능
    localVar = 10
    MsgBox "localVar 값: " & localVar
End Sub

반응형

🎯 마무리 정리

VBA 변수 사용 핵심 요약

1️⃣ 변수 선언은 Dim 변수이름 As 데이터형 형식으로 한다.
2️⃣ VBA의 데이터 타입에는 Integer, String, Boolean, Double 등이 있다.
3️⃣ Option Explicit를 사용하면 변수 선언을 강제할 수 있다.
4️⃣ 변수의 범위(Scope)는 선언 위치에 따라 다르다.
5️⃣ Public, Private, Static을 활용하여 변수의 사용 범위를 조절할 수 있다.

 

변수를 올바르게 활용하면 코드가 더 깔끔하고 유지보수하기 쉬운 코드가 됩니다!
지금 바로 VBA에서 변수를 선언하고 활용해 보세요! 🚀💡

728x90
반응형

댓글