only the current printer is the printer object, you can set an object to represent the printer object, but members of the collection are not the printer object and do not have the methods or properties of the printer object
scalex is obviously a property of the printer object, while all members of the printer collection have a name property

if you
set myprinter = printer

then your code should work