#!/usr/bin/perl -w # vba2pl version 0.1 my $app = shift; # I know... next version will GetOpts :) my $macro = shift; my ($name, $ext) = split('.',$macro); # I know... next version will use file::basename my $pl = "$name.pl"; my $code = ""; open(BAS, "<", $macro); while () { s/\./->/g; s/=/=>/; s/"/'/g; s/\s+End With/);/; s/\s+With (\w+)->(\w+)/\$Range = \$$1->$2;\nwith (\$Range/i; s/Application/\$$app/i; s/(.*[^;])\n/$1,\n/; $code .= $_; } close(BAS); open(PL, ">", $pl); print PL $code; close(PL);