ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Reading a VBA constant value by an outsider macro? (https://www.excelbanter.com/excel-programming/276268-re-reading-vba-constant-value-outsider-macro.html)

Chip Pearson

Reading a VBA constant value by an outsider macro?
 
Rob,

Yes, it is possible. In workbook A, declare the constant:

Public Const cPASSWORD = "chip"

Then, go to the Tools menu, choose Properties, and give the project a new
name like TestProject. Save the file.

In workbook B, in the VBA editor, go to the Tools menu, choose References,
and put a check next to A's project name, TestProject.

You can then use the constant declared in A with code in B like

MsgBox TestProject.cPASSWORD

You can prevent this cross-project referencing by placing 'Option Private
Module' at the top of the code module. When Option Private Module is in
effect, procedures, properties, variables, and constants can be used only
from within the same project. The aren't exposed to other projects.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
www.cpearson.com



"Rob" wrote in message
m...
Hello FellowNewsgroupReaders,

I think I know quite a lot of protecting my projects and spreadheets.
I create a workbook called "A.XLS".
VBA code stores a password to open another sheet.
In VBA I declare a constant, like
const constPass = "123"
I protect the VBA code with a password.

If I open "A.xls" and create another sheet "B.xls", is it possible to
create code to read the constant from the VBA in "A.xls"?

I suspect it is NOT possible. I just want to know IF it possible in any

way.
If so, I cannot store my password in a constant and I need to find another
solution. But the solution above will help me make things easier.

Am I right with this?

Regards,
Rob Zoomer





Rob[_5_]

Reading a VBA constant value by an outsider macro?
 
Chip,
Thank you for this clear answer. I tested it and it works great. This way my
passwords are not 'in the air' and I can easily change them for they are all
together in one batch of declarations.

Regards,
Rob

"Chip Pearson" schreef in bericht
...
Rob,

Yes, it is possible. In workbook A, declare the constant:

Public Const cPASSWORD = "chip"

Then, go to the Tools menu, choose Properties, and give the project a new
name like TestProject. Save the file.

In workbook B, in the VBA editor, go to the Tools menu, choose References,
and put a check next to A's project name, TestProject.

You can then use the constant declared in A with code in B like

MsgBox TestProject.cPASSWORD

You can prevent this cross-project referencing by placing 'Option Private
Module' at the top of the code module. When Option Private Module is in
effect, procedures, properties, variables, and constants can be used only
from within the same project. The aren't exposed to other projects.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
www.cpearson.com



"Rob" wrote in message
m...
Hello FellowNewsgroupReaders,

I think I know quite a lot of protecting my projects and spreadheets.
I create a workbook called "A.XLS".
VBA code stores a password to open another sheet.
In VBA I declare a constant, like
const constPass = "123"
I protect the VBA code with a password.

If I open "A.xls" and create another sheet "B.xls", is it possible to
create code to read the constant from the VBA in "A.xls"?

I suspect it is NOT possible. I just want to know IF it possible in any

way.
If so, I cannot store my password in a constant and I need to find

another
solution. But the solution above will help me make things easier.

Am I right with this?

Regards,
Rob Zoomer








All times are GMT +1. The time now is 07:50 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com