The ActivePrinter property works fine, you are probably just sending in the wrong name. It requires the network name of the printer (something like "\\\\server\\printer1 on Ne00:"). The best thing to do to make sure you have the name correct is to set the printer as the default in the system, then call Excel_GetProperty on the ActivePrinter property and see what comes out in the string that is returned. Then you know exactly what the function is expecting for the Excel_SetProperty call.
Best Regards,
Chris Matthews
National Instruments