It seems to me that as soon as you add a nonnumeric value to a variable, you make it a string variable.
For this trick to work, you need to make sure that you add to the variable and not set the variable. If you add to the variable as each page is visited, then you'll eventually end up with something like, "%001%002%003%004..." I don't know what the limit is on variable sizes, but as long as you don't have thousands of pages, I think you should be fine. As long as you prevent adding on every time a page is visited, you won't get crap like "%001%002%001%002..." That's what I was trying to avoid with that Else suggestion.
But, you would do a conditional to see if varCompleted Contains %001.
And this doesn't matter if you insert or remove pages. While it is intuitive to want to have %001, %002, %003, etc., for sequential pages, it's really not that important. You could theoretically have pages in order %003, %006, %005. As long as you look for that specific string, you are fine. It might annoy someone in the future who inherits it, though. For that reason, you may want to consider having more meaningful names like %intro, %summary, etc. But those can be hard to work with. For example, what if you accidentally create two instances of %glossary?
BTW, you don't have to use percent. I just threw that in there to force the variable to be a string. If I relied on 001, 002, 003, then when I add them all together, I get 6 instead of 001002003. You could use anything else to define your string, like f001, |004, or a#049.
Kevin