A family of Microsoft word processing software products for creating web, email, and print documents.
Yes, that's the kind of problem Peter mentioned. The cure is to move the declaration of the string variables inside the procedure that contains the assignments of the strings. You'll have to replace the keyword Private in the declaration with the keyword Dim (because a Private declaration is not allowed inside a procedure).
As long as all the other procedures (such as FillBookmark) get their string values as arguments that are passed from the first procedure, all will be well. If any procedures are supposed to refer to the variables declared outside any procedure, those procedures must be changes to get the variables as arguments. This article may help to understand better: http://wordmvp.com/FAQs/MacrosVBA/ProcArguments.htm