#1
|
|||
|
|||
Global variables
I am still working on a QC Control VBA add in to word to better manage the QC process to our company standards.
I've got it to about 90% complete, but I'm finding that to dummy proof the scripts, I may need to use some global variables. as testing I added a global var to my module, but it seems that as I run each script in my module (one to set your role, another to create the custom styled comment based on your role) it appears that my global var resets to "". I looked into a few things and found write up on Document variables. the ActiveDocument.Variables looks promising, but I need a variable that clears when the document is closed. So basically, it has to reset on opening the document. Is there something in Word VBA that can act like that? |
#2
|
|||
|
|||
This gets slightly better. It seems that sometimes the Global Var (public userRole as String) holds a value, and sometimes resets....
If I could better understand that, it may be usable for what I need. |
#3
|
|||
|
|||
Did you try to set a specific name for the global variable? as Name1234A ??
Did you try using PUBLIC instead of GLOBAL? Public or Global must be in top of the module, before any sub/function
__________________
Backup your original file before doing any modification. |
#4
|
|||
|
|||
Quote:
Code:
Public userRole As String |
#5
|
|||
|
|||
I will just use PUBLIC if I not know exactly why need to use GLOBAL which is for complex coding using variables outside word I suppose.
Last edited by eduzs; 05-02-2019 at 02:28 AM. |
#6
|
|||
|
|||
Well, it seems that I can no longer re-create the fail on the public var not keeping the info, so I guess for now it's solved?
I've been trying for the past few days and can't seem to make it happen again, even with multiple documents open, and other oddities that may occur as people use this. Thanks of all whom replied back. |
#7
|
|||
|
|||
I am not a pro, but I suppose that nobody can answer your question without analyzing the entire code which is impratical.
The only thing you can do is to test exhaustively with most possible scenarios.
__________________
Backup your original file before doing any modification. |
#8
|
||||
|
||||
Quote:
Public userRole as String userRole can be cleared from any sub or function with code like: userRole = "" If you want to prevent userRole being reset use code like: Const userRole As String = "Manager" Note also that having: Option Explicit at the top of your code module will protect you from having something like: Public userRole as String but then referencing it as: useRole in your code - which quite understandably would come back as a null string.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#9
|
|||
|
|||
Thanks for the input on this.
It cannot be a constant, as it would be set by a user selection. This selection needs to be kept as long as the document is open (or another selection changes it). This initial value should be set as the beginning of the use of these scripts. A null value is expected to error check if other parts of the code is used out of turn, which direct the user to proper usage. So a global var is the only thing I can think of. Other parts of the process 'stamp' a value at the end of the document in a protected area, but as the role can be changed during the use of the document, and these stamps are there from the first usage of the code, I cannot rely on that as a reference point. It needs to be something set only after the code is started, and should have a null value before that. |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How does the Enterprise Global and local Global an User Regitry work together? | Lupus74 | Project | 0 | 08-31-2018 12:18 PM |
Array to iterate through variables and trap blank variables | Marrick13 | Word VBA | 5 | 08-04-2015 06:19 AM |
can word: make variables, find appropriate pages, fill out pages with variables, print only those | 20GT | Word VBA | 1 | 10-15-2014 09:48 PM |
Global Settings | lefttoday | Word | 3 | 02-03-2011 03:34 PM |
Global template | ryalls3857 | Word | 1 | 12-27-2010 05:45 PM |