After developing/debugging in 2007 or later, change this:
Sub FillShape(oShp as Shape)
to this:
Sub FillShape(oShp as Object)
Since the compiler doesn't know what properties an Object has or doesn't have, it will no longer bark at you. Of course it's up to you to make sure you don't try to push 2003 through any hoops it doesn't understand or trap the error if you do.