출처 :
엑사모예제파일 다운 받기 :
vba16_3_4_ex.zip -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
16-3,16-4. Public 문, Private 문 |
이기춘 (Homepage) |
2003-10-25 01:55:11, 조회 : 1,889, 추천 : 9 |
- Download #1 : vba16_3_4_ex.zip (9.0 KB), Download : 353
Public 문
변수를 프로젝트 어느 곳에서든 사용하고자 할 경우에 사용합니다. (전역 변수)
Global 문과 동일한 효과를 나타냅니다. Global 문을 사용하는 대신에 Public 문을 사용하시기 바랍니다.
Private 문
변수를 지역으로 사용하고자 할 경우에 사용합니다. (지역 변수)
전역변수: 프로젝트의 어느 곳에서도 해당 변수가 사용될 수 있는 변수입니다.
지역변수: 자신이 속해있는 모듈, 폼, 클래스, 프로시저등 그 선언된 곳에서만 사용될 수 있는 변수입니다.
전역변수와 지역변수는 변수의 수명과도 관련된 내용입니다.
예제로 살펴보겠습니다.
아래 코드는 Module1 에 작성합니다.
Option Explicit
Public Const HomePage As String = "http://www.excellove.com" Public PubVar As String Private PriVar As String
Sub Main()
PubVar = "이 변수는 전역 변수로 선언된 변수입니다." & vbCr & vbCr & _ "이 변수가 선언된 위치는 Module1 입니다." & vbCr & vbCr & _ "변수가 전역으로 선언되면 그 위치에 관계없이" & vbCr & vbCr & _ "프로젝트의 어느 곳에서도 그 변수명을 사용할 수 있습니다." & vbCr & vbCr & _ "전역 변수로 선언된 이 변수는 Module2 에 있는 프로시저가(Pub_Pri_Ex2) 호출되어도" & vbCr & vbCr & _ "그 값을 여전히 가지고 있으므로 이 내용을 볼 수 있습니다."
PriVar = "이 변수는 지역 변수로 선언된 변수입니다." & vbCr & vbCr & _ "이 변수가 선언된 위치는 Module1 입니다." & vbCr & vbCr & _ "변수가 지역으로 선언되면 자신이 선언된 곳" & vbCr & vbCr & _ "(여기에서는 Module1) 안에서만 사용할 수 있습니다." & vbCr & vbCr & _ "지역 변수로 선언된 이 변수는 Module2 에 있는 프로시저가(Pub_Pri_Ex2) 호출되면" & vbCr & vbCr & _ "그 값을 인식하지 못하고 이 메시지를 볼 수 없습니다."
Call Pub_Pri_Ex Call Pub_Pri_Ex2
End Sub
Sub Pub_Pri_Ex()
MsgBox "이 메시지 박스는 Module1 에 작성된 프로시저입니다." & vbCr & vbCr & _ "변수명 : PubVar" & vbCr & vbCr & _ PubVar, vbInformation, HomePage
MsgBox "이 메시지 박스는 Module1 에 작성된 프로시저입니다." & vbCr & vbCr & _ "변수명 : PriVar" & vbCr & vbCr & _ PriVar, vbInformation, HomePage
End Sub
아래 코드는 새 모듈을 추가하고 Module2 에 작성합니다.
주) Module2 에는 테스트를 위하여 Option Explicit 문이 없음을 유의 하십시요. 만약에 여러분의 코드에 Option Explicit 문이 있다면 Pub_Pri_Ex2 가 호출될 때 컴파일 오류가 발생하게 됩니다.
Sub Pub_Pri_Ex2()
MsgBox "이 메시지 박스는 Module2 에 작성된 프로시저입니다." & vbCr & vbCr & _ "변수명 : PubVar" & vbCr & vbCr & _ PubVar, vbInformation, HomePage
MsgBox "이 메시지 박스는 Module2 에 작성된 프로시저입니다." & vbCr & vbCr & _ "변수명 : PriVar" & vbCr & vbCr & _ PriVar, vbInformation, HomePage
End Sub
실행은 Main 프로시저를 실행하도록 합니다. | | |