Public and Private Variables

7 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€92.84
List Price:  €129.98
You save:  €37.14
£79.48
List Price:  £111.28
You save:  £31.79
CA$136.74
List Price:  CA$191.45
You save:  CA$54.70
A$150.88
List Price:  A$211.24
You save:  A$60.36
S$135.02
List Price:  S$189.03
You save:  S$54.01
HK$781.40
List Price:  HK$1,093.99
You save:  HK$312.59
CHF 90.57
List Price:  CHF 126.80
You save:  CHF 36.23
NOK kr1,084.75
List Price:  NOK kr1,518.70
You save:  NOK kr433.94
DKK kr692.49
List Price:  DKK kr969.51
You save:  DKK kr277.02
NZ$166.11
List Price:  NZ$232.56
You save:  NZ$66.45
د.إ367.25
List Price:  د.إ514.16
You save:  د.إ146.91
৳10,956.06
List Price:  ৳15,338.92
You save:  ৳4,382.86
₹8,347.75
List Price:  ₹11,687.19
You save:  ₹3,339.43
RM473.85
List Price:  RM663.41
You save:  RM189.56
₦123,487.65
List Price:  ₦172,887.65
You save:  ₦49,400
₨27,772.29
List Price:  ₨38,882.31
You save:  ₨11,110.02
฿3,673.43
List Price:  ฿5,142.95
You save:  ฿1,469.52
₺3,227.91
List Price:  ₺4,519.21
You save:  ₺1,291.29
B$507.22
List Price:  B$710.14
You save:  B$202.91
R1,843.50
List Price:  R2,580.97
You save:  R737.47
Лв181.60
List Price:  Лв254.25
You save:  Лв72.65
₩135,529.28
List Price:  ₩189,746.42
You save:  ₩54,217.13
₪374.14
List Price:  ₪523.82
You save:  ₪149.67
₱5,714.50
List Price:  ₱8,000.53
You save:  ₱2,286.03
¥15,376.28
List Price:  ¥21,527.41
You save:  ¥6,151.12
MX$1,692.97
List Price:  MX$2,370.23
You save:  MX$677.25
QR364.12
List Price:  QR509.78
You save:  QR145.66
P1,360.02
List Price:  P1,904.08
You save:  P544.06
KSh13,423.65
List Price:  KSh18,793.65
You save:  KSh5,370
E£4,794.44
List Price:  E£6,712.40
You save:  E£1,917.96
ብር5,730.37
List Price:  ብር8,022.75
You save:  ብር2,292.37
Kz83,526.97
List Price:  Kz116,941.11
You save:  Kz33,414.13
CLP$94,107.58
List Price:  CLP$131,754.38
You save:  CLP$37,646.80
CN¥707.87
List Price:  CN¥991.05
You save:  CN¥283.18
RD$5,800.92
List Price:  RD$8,121.52
You save:  RD$2,320.60
DA13,449.71
List Price:  DA18,830.13
You save:  DA5,380.42
FJ$224.39
List Price:  FJ$314.16
You save:  FJ$89.76
Q775.96
List Price:  Q1,086.38
You save:  Q310.41
GY$20,884.44
List Price:  GY$29,239.05
You save:  GY$8,354.61
ISK kr13,954.60
List Price:  ISK kr19,537
You save:  ISK kr5,582.40
DH1,006.90
List Price:  DH1,409.70
You save:  DH402.80
L1,768.33
List Price:  L2,475.74
You save:  L707.40
ден5,716.08
List Price:  ден8,002.75
You save:  ден2,286.66
MOP$803.50
List Price:  MOP$1,124.94
You save:  MOP$321.43
N$1,847.92
List Price:  N$2,587.16
You save:  N$739.24
C$3,674.94
List Price:  C$5,145.06
You save:  C$1,470.12
रु13,329.02
List Price:  रु18,661.17
You save:  रु5,332.14
S/372.66
List Price:  S/521.73
You save:  S/149.07
K385.89
List Price:  K540.26
You save:  K154.37
SAR375.01
List Price:  SAR525.03
You save:  SAR150.02
ZK2,692.78
List Price:  ZK3,770.01
You save:  ZK1,077.22
L461.79
List Price:  L646.53
You save:  L184.73
Kč2,323.07
List Price:  Kč3,252.39
You save:  Kč929.32
Ft36,167.88
List Price:  Ft50,636.48
You save:  Ft14,468.60
SEK kr1,082.52
List Price:  SEK kr1,515.58
You save:  SEK kr433.05
ARS$87,865.40
List Price:  ARS$123,015.07
You save:  ARS$35,149.67
Bs691.31
List Price:  Bs967.87
You save:  Bs276.55
COP$388,509.43
List Price:  COP$543,928.75
You save:  COP$155,419.31
₡51,021.71
List Price:  ₡71,432.44
You save:  ₡20,410.72
L2,466.06
List Price:  L3,452.59
You save:  L986.52
₲747,341.53
List Price:  ₲1,046,308.05
You save:  ₲298,966.51
$U3,819.97
List Price:  $U5,348.11
You save:  $U1,528.14
zł401.45
List Price:  zł562.05
You save:  zł160.59
Already have an account? Log In

Transcript

Hey guys, welcome back. In this video, we're going to speak about public and private variables. So we're going to see how to declare a variable as a public so that it would be applicable throughout your whole workbook. And you can run it from any module. And we will also see how to declare private variables that are specific to certain modules. So here at the moment, I've got two procedures, one called public variables, one and the other one called public variables two.

Now currently, I've got a variable called x in each of them, and it's declared as an integer, and it will take a value of two on the first one, and it will take a value of three. On the second one. However, let me just tell you that the variable x here is different than the variable x here. So actually, each of the two macros is speaking currently about a different variable. So x at the top is not the same as x at the bottom although they are both called x So how do we make x at the top? b the same x at the bottom?

How do we make the two macros speak about the same variable? We can do that by declaring public x as integer, for example, and I'm just going to delete this line of code here and delete this line of code, because the type of the variable has been declared at the top. So in this case, both sub procedures would be speaking about the same variable. So how do we verify that? Okay, well, we can actually create a watch window for x here. So I'm going to right click here and click on Add watch.

And the expression is going to be x. And the context of where x actually is going to be not a certain Sub procedure, but it's going to be old procedure since it's a public variable, and it's going to be throughout all modules, because x being public means that it can work run on any module, okay, or it can be cold from any module. So I'm gonna press ok here. And now we've got a watch window for x as a variable. Now I'm gonna run through the first procedure here. So the first procedure is going to set the value of x to be equal to two.

And as you can see here, the value of x is two currently on the watch window. Now watch what happens when I press N sub, the value of x is still two. Okay, so it's not been cleared from system memory as we've seen on the previous lesson. This is because it's been declared as a public variable. So it's not specific to a certain macro, but it's actually public. So this means that it will retain its value after the macro runs its course.

And now if we run the second macro, so if we step through it step by step by pressing f8 you can see here now when we run this step, that the value of x changes to three, so actually, the second macro manager Just change the same variable as the first macro. So currently in this current state, they are both speaking about the same variable. So when you declare a variable as a public, this means that any procedure in any module in your workbook can speak about that variable. Okay, so that is the bottom line of this part of this lesson. Okay, so when you declare a variable as public, you can speak about it from any Sub procedure from any module in your workbook. Now, you can actually make a variable be specific to a certain module in your workbook by actually declaring it as private, so private, why, as integer For example, this will make variable y be just specific to module one.

Now let's say I'm going to set here y to be equal to five on this Sub procedure. I'm going to set it to be equal to 10 on the other side, procedure, and I'm going to actually add a watch window for y. So I'm going to right click here and click on Add watch. And then I'm going to actually watch why. And here, the procedure, the context is going to be throughout old procedures in Module One, we cannot monitor why throughout all the modules, because currently it's a private. So it's going to be only monitored through module one.

If I select all modules and press OK, watch what happens here. It says expression not defined in context. That means that it's currently defined out of its context, because its context is only module one, not all the modules. So if I right click again, it watched it that and put it back to Module One, and click OK currently has a value of zero, because we haven't changed its value yet. But now we can actually monitor its value. So if I run the first procedure, for example, here y is five and I N sub you can see here that y still retains the value of five y is currently specific to just Module One, if I run the second one here, you can see here that when I run the line when y equals 10, f8, through that you can see here that its value has changed.

So actually, both of them are speaking about the same variable y. If I go to Module Two, if I double click on it here, it's a different module. And I'm going to create a macro called public variables three, and I'm going to assign a value for y to be equal to seven, for example, here, if I try to run this macro, watch what's going to happen here, actually, the value of y at the bottom does not change. Okay, I'm gonna do it again. Watch the value for the variable that we're watching, which is y. And this is a private variable specific to Module One.

When I run this line of code, the value does not change because this Y variable is different from this Y variable that we're watching. If I want to watch this y value Well, I got to add another watch. And the watch that I'm going to add is going to be four public variables three in Module Two, this Y variable here is actually specific to just module two. So if I run it, and it's actually a variant, because I haven't declared its type, if I run it, you can see this one changes, because this is the one that we should be monitoring because this one is specific to the Sub procedure called public variables three. So basically, the bottom line is that if you need your variable to be able to be called from any procedure from any module in your workbook, then declare as a public variable, if you need your variable to be just be able to get called from just a specific module.

So from any Sub procedure in that specific module, just declare as a private, if you need to be just be specific to a certain Sub procedure, then don't make it a public option. Private just dim it inside the search procedure and it will be just specific to that particular Sub procedure. So that's it guys for this lesson. Thank you very much watching this video. I'll see you on the next one.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.