Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default Global/Public

If I have any global variable and/or constants to declare, and they are
limited to one module, which is the better method to declare them:

Option Explicit
Dim myString as String
Const myConst as Integer = 1

Or

Option Explicit

Sub Main()
Public myString as String
Public Const myConst as Integer = 1

What are the advantages and/or limitations of each? And while we're at it,
what about declaring as variable as Static?

--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200605/1
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default Global/Public

The limitations of the latter is that it doesn't work.

If they are public to the whole project, accessible from any module, declare
them as public in declaratives

Public myString as String
Public Const myConst as Integer = 1

If they are private to the module, accessible only to that module, declares
them as private in declaratives

Private myString as String
Const myConst as Integer = 1

If they are private to the procedure, not accessible b y any other
procedure, in that module or any other, declare them as private in the
procedure

Sub Main()
Dim myString as String
Const myConst as Integer = 1

--
HTH

Bob Phillips

(replace somewhere in email address with googlemail if mailing direct)

"Fox via OfficeKB.com" <u18899@uwe wrote in message
news:60d655f7da51d@uwe...
If I have any global variable and/or constants to declare, and they are
limited to one module, which is the better method to declare them:

Option Explicit
Dim myString as String
Const myConst as Integer = 1

Or

Option Explicit

Sub Main()
Public myString as String
Public Const myConst as Integer = 1

What are the advantages and/or limitations of each? And while we're at

it,
what about declaring as variable as Static?

--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200605/1



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default Global/Public

This is getting into the realm of scope. What should have access to what. In
general the rule is to keep things as private as is possible. It makes
debugging a whole lot easier. For example if your variable is private to the
current module then if there is a problem with the value of that variable at
any point you can at least narrow it down immediately to the current module
and rule out the rest of the project as the cause of the problem. This might
sound simple but when your projects start to get very large it is immensly
helpful. That is just one reason. There are more but for the sake of
simplicity "as much as possible keep things as private as you can". Your life
will be better for it...

Static Variables - Under normal circumstances when a procedure or function
ends all of the variables are destroyed and their value is lost. Normally
that is what you want, but in the odd case you would like to keep that value.
Your options are to declare a global varaible (which is overkill if this is
the only procedure that needs access to this variable. A scope issue again.)
or to declare the variable as static. Static variables persist even after the
procedure ends, so that then next time you call the procedure the value is
still there.
--
HTH...

Jim Thomlinson


"Fox via OfficeKB.com" wrote:

If I have any global variable and/or constants to declare, and they are
limited to one module, which is the better method to declare them:

Option Explicit
Dim myString as String
Const myConst as Integer = 1

Or

Option Explicit

Sub Main()
Public myString as String
Public Const myConst as Integer = 1

What are the advantages and/or limitations of each? And while we're at it,
what about declaring as variable as Static?

--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200605/1

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
public or global array shishi Excel Programming 2 February 6th 06 09:29 PM
Public vs Global quartz[_2_] Excel Programming 2 February 9th 05 06:20 PM
Dim vs. Public Jason Morin Excel Programming 7 January 27th 05 01:13 PM
public sub Bob Excel Programming 3 December 10th 04 08:49 PM
Public Sub Help No Name Excel Programming 2 May 18th 04 11:09 PM


All times are GMT +1. The time now is 11:10 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"