Sorry, you're absolutely right. I'm reading this page on a phone, so I missed that. Read up on scope, but it looks like you're handling the resetting of the variables properly.
as for the scr variables... You can. But you're explicitly setting them (I think) in either for loops or elsewhere. Technically, since you're using CreatObject but never explicitly killing the object... Combined with use of a public variables lifetime, you could have some issues with memory at some point. But if imagine it would take weeks if running the code and never restarting Word.
So, I'm not sure how to approach... Why don't you fix the ActiveDocument/wdDoc mistake, and then try again?