Why use Win32::OLE over VB?
You want to understand your application's object model better.
You want to get around macro security.
You want to drive from the command line (see Cygwin).
And of course: you'd rather program in Perl.