Surprisingly, it's not totally clear what you want. Do you want "0200" as a string (which is what you say) or the number 200 formatted with a leading zero (which is what you seem to be trying to do)? The following code illustrates both:
use strict;
use warnings;
use diagnostics;
use Win32::OLE;
my $xl = Win32::OLE->new('Excel.Application');
$xl->{Visible} = 1;
$xl->Workbooks->Add;
my $rng = $xl->Workbooks(1)->Sheets(1)->Range("A1");
$rng->{Value} = 200;
$rng->{NumberFormat} = "0000";
$rng = $xl->Workbooks(1)->Sheets(1)->Range("A2");
$rng->{Value} = "'0200";
A1 contains the number formatted with a leading zero (you may need some variant on this depending on what you are doing). A2 contains the text string. Note on the last line that the assignment starts with a double quote
followed by a single quote. The text string doesn't (usually) need formatting.
Hope this helps and regards,
John Davies