본문 바로가기
WeekdayLife/excel

[엑셀VBA] variable, sub, function의 private, public 범위

by JO_i 2023. 3. 23.

variable

sub 내부 dim 변수(지역변수) : 범위 - 동일 sub

sub 외부 dim 변수(모듈변수) : 범위 - 동일 module

sub 외부 public 변수(전역변수) : 범위 - 동일 file

 

 

sub, function

아무것도 붙이지 않으면, public으로 동작하는데, private로 한정지어 줄 수 있다.

 

 

0번 모듈에 변수 선언

 

'module0
Public num1 As Integer
Public num2 As Integer

 

 

1번 모듈에서 변수값 입력

 

'module1
Option Explicit

Sub testModule1()
num1 = 23
num2 = 45

MsgBox num1 & " / " & num2 '23 / 45

End Sub

 

 

2번 모듈에서

1번 모듈 호출 가능(private 붙이면 불가)

전역 변수 호출 가능(private 붙이면 불가)

 

'module2
Option Explicit

Sub testModule2()

Call testModule1 'module1의 testModule1 sub에 private를 붙이면 실행되지 않음
   
    num2 = num2 / 5 'module0의 num2에 private를 붙이면 0이 됨
    MsgBox num1 & " / " & num2  '23 / 45

End Sub

 

비개발자로서, 적합한 용어를 사용하기 참 애매하다.

 

끝.