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

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

조회 수 14246 추천 수 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 34716

기타 VBA로 인디언식 이름 만들어주는 사용자 정의 함수 만들기.. imagefile [1]

  • [레벨:30]아별
  • 2012-01-11
  • 조회 수 6018

엑셀 사용자 정의 수식(UDF)에 도움말 넣는 방법.

  • [레벨:30]아별
  • 2009-11-11
  • 조회 수 6049

엑셀에서 vba식으로 영역설정하기.. [2]

  • [레벨:30]a☆
  • 2004-10-21
  • 조회 수 6113

엑셀에서 익스플로러 컨트롤하기..

  • [레벨:30]a☆
  • 2005-07-21
  • 조회 수 6302

특정영역에서 데이터베이스 끝까지, 수식 붙여넣기 또는 자동 채우기..

  • [레벨:30]a☆
  • 2005-07-29
  • 조회 수 6323

엑셀에서 날짜 함수 컨트롤 하기

  • [레벨:30]a☆
  • 2004-10-29
  • 조회 수 6401

엑셀에서 매개변수의 전달과 외부함수 호출

  • [레벨:30]a☆
  • 2004-10-27
  • 조회 수 6577

엑셀에서 서식 지정하기.. 숫자를 한글로 표시하기 등.. [1]

  • [레벨:30]a☆
  • 2004-09-24
  • 조회 수 6720

[펌] Excel Macro(VBA) 입문자를 위한 소개자료 image

  • [레벨:30]아별
  • 2008-12-19
  • 조회 수 6757

기타 기본 제공 대화 상자 실행하면 초기 값 설정 imagefile

  • [레벨:30]아별
  • 2010-08-25
  • 조회 수 6772

기타 VBE에서 휠마우스 사용가능하게 하기SpeedVB4 file

  • [레벨:30]아별
  • 2005-07-22
  • 조회 수 6933

기타 헷갈리기 쉬운 워크시트 함수와 VBA함수 비교표 imagefile

  • [레벨:30]아별
  • 2010-10-05
  • 조회 수 7147

[엑셀VBA] 메시지 박스 활용하기

  • [레벨:30]아별
  • 2004-12-22
  • 조회 수 7206

엑셀의 사용자 정의 날짜/시간 형식(Format 함수)

  • [레벨:30]a☆
  • 2004-11-12
  • 조회 수 7324

현재 엑셀 파일의 색상표(Color Chart) 확인용 코드

  • [레벨:30]아별
  • 2009-12-24
  • 조회 수 7453

엑셀 추가 기능 만들기

  • [레벨:30]a☆
  • 2006-01-19
  • 조회 수 7482

[엑셀VBA] ERROR CODE file

  • [레벨:30]아별
  • 2008-08-28
  • 조회 수 7508

엑셀VBA 텍스트 박스에서 여러줄 입력하기

  • [레벨:30]a☆
  • 2004-11-15
  • 조회 수 7577

Excel에서 메뉴 및 메뉴 모음을 사용자 지정하는 방법 image

  • [레벨:30]아별
  • 2009-11-04
  • 조회 수 7634

기타 엑셀에서 소리 내기(재생) _ sound play file [1]

  • [레벨:30]아별
  • 2010-12-13
  • 조회 수 7810