When using late binding methods, constants should be set as a number. A easy way to see what the number would be is to use early binding for development and type it into the Immediate Window. e.g.
?AppDoc.xlMaximized

So that I can use MSWord constants as a word rather than the number, I do something like this:
[VBA] wdReplaceAll = 2
wdFindContinue = 1[/VBA]

I will look at your code in detail if this tip does not help you.