728x90
반응형
✅ Dim 키워드는 모듈 수준에서도 사용 가능
Dim 키워드는 모듈 수준과 프로시저 수준에서 모두 사용 가능합니다.
📌 코드 분석
' 모듈 수준 변수
Dim 파일 As Workbook
- 모듈 수준 변수는 해당 모듈 내에서 어디서든 접근 가능합니다.
- Dim을 사용해도 Private과 동일한 효과를 가지므로, 같은 모듈 내의 다른 프로시저에서도 파일 변수를 사용할 수 있습니다.
Sub vba()
' 프로시저 수준 변수
Dim score As Integer ' 정수를 저장하는 변수
Dim name As String ' 문자열을 저장하는 변수
Dim isPassed As Boolean ' 참/거짓을 저장하는 변수
End Sub
- 프로시저 수준 변수는 해당 프로시저(vba) 내부에서만 유효합니다.
- 프로시저가 종료되면 메모리에서 사라집니다.
728x90
🚨 오류가 발생하는 경우
1️⃣ 다른 모듈에서 모듈 수준 변수를 사용하려고 할 때
' 모듈1 (Module1)
Dim 파일 As Workbook
' 모듈2 (Module2)
Sub test()
Set 파일 = Workbooks.Open("C:\example.xlsx") ' 오류 발생 ⚠️
End Sub
- Dim 파일 As Workbook은 Module1 내에서만 접근 가능
- 다른 모듈(Module2)에서 사용하려면 Public 파일 As Workbook으로 변경해야 함.
2️⃣ 프로시저 수준 변수를 다른 프로시저에서 사용하려고 할 때
Sub vba()
Dim score As Integer
score = 90
End Sub
Sub checkScore()
MsgBox score ' 오류 발생 ⚠️ (score는 vba() 안에서만 유효)
End Sub
- score는 vba() 프로시저 안에서만 유효하므로, checkScore()에서 사용할 수 없음.
반응형
🎯 정리: Dim 키워드와 변수 수준
변수 수준 | 선언 위치 | 사용 범위 | 지속 시간 |
모듈 수준 변수 | 프로시저 밖 (Dim, Private) | 해당 모듈 전체 | 엑셀 실행 중 유지 |
프로시저 수준 변수 | 프로시저 안 (Dim) | 해당 프로시저 내부 | 프로시저 종료 시 삭제 |
전역 변수 | 프로시저 밖 (Public) | 모든 모듈에서 접근 가능 | 엑셀 실행 중 유지 |
✅ Dim을 모듈 수준에서 사용할 수 있으며, Private과 동일한 효과를 가짐!
✅ Dim을 프로시저 수준에서 사용하면 해당 프로시저 내부에서만 유효!
728x90
반응형
'PROGRAMMING > EXCEL&ACCESS' 카테고리의 다른 글
[엑셀 VBA] 엑셀 VBA 조건문과 반복문 (0) | 2025.02.17 |
---|---|
[엑셀 VBA] 매크로 연습하기 (매크로 기록/상대참조로 기록) (0) | 2025.02.16 |
[엑셀 VBA] 엑셀 VBA 기초 문법_변수의 개념 정리 (0) | 2025.02.15 |
[엑셀 VBA] 엑셀 VBA 기초 문법_문법 구조와 코드 다루기 (0) | 2025.02.15 |
[엑셀 VBA] 매크로 이름과 바로가기 키 수정하기 (0) | 2025.02.14 |
댓글