1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

[VBA] 전역변수 설정하기. Public 문, Private 문

조회 수 14074 추천 수 0 2008.07.01 15:57:54

출처 : 엑사모

예제파일 다운 받기 : 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 프로시저를 실행하도록 합니다.

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 33964
64 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 _ 윈도우 도움말 file [레벨:30]아별 2017-04-21 39452
63 [펌] Visual Basic (비쥬얼 베이직) 함수 정리 imagefile [레벨:30]아별 2009-11-27 20124
62 시트에서 콤보박스 활용하기 file [레벨:30]a☆ 2005-11-12 16751
61 메시지 박스 대용으로 Shape 사용하기 file [레벨:30]아별 2009-05-07 16073
60 기타 [펌] 엑셀 VBA 총정리 _ Excel 개체 모델 참조 등 image [2] [레벨:30]아별 2010-03-09 16010
» [VBA] 전역변수 설정하기. Public 문, Private 문 imagefile [레벨:30]아별 2008-07-01 14074
58 엑셀에서 사용하는 언어 확인하기. file [1] [레벨:30]아별 2009-06-03 13809
57 기타 [펌] VBA 공부를 시작하시는분들에게 추천하는 강의자료 imagefile [4] [레벨:30]아별 2011-03-21 13766
56 기타 [Excel VBA] 피벗테이블(PivotTable)을 VBA로 컨트롤해보자.. [레벨:30]아별 2008-12-19 12168
55 엑셀에서 달력 집어 넣기.. [1] [레벨:30]a☆ 2004-10-21 11564
54 [엑셀VBA] 자동필터를 매크로로 구현하기 [레벨:30]아별 2008-08-28 11258
53 엑셀2007에서 셀의 색상을 RGB로 뽑아내기 file [레벨:30]아별 2009-10-06 10229
52 엑셀의 유저폼 관련 [1] [레벨:30]a☆ 2004-10-21 10087
51 엑셀에서 줄바꿈에 대해서.. 줄바꿈하기 제거하기 등등.. [레벨:30]a☆ 2004-11-15 10047
50 기타 [링크] VBA로 파일을 다루는 방법에 대한 강좌들을 모아놓은 겁니다. [레벨:30]아별 2010-03-03 9954
49 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 file [2] [레벨:30]아별 2011-10-05 9326
48 [엑셀VBA] 네이버 지식인 답변 _ 엑셀 쿼리를 이용해서 펀드 기준가 데이터를 읽어오기. file [레벨:30]아별 2008-04-30 9155
47 기타 VBA _ 레지스트리 다루기 ( registry control ) imagefile [레벨:30]아별 2011-03-19 8780
46 [10/19일 수정] 엑셀 매크로 수정하기... [2] [레벨:30]a☆ 2003-09-29 8289