use strict; use warnings; use Win32::OLE; my $excel = Win32::OLE->CreateObject('Excel.Application'); $excel->{Visible} = 1; my $wb = $excel->Workbooks->Add; $wb->ActiveSheet->Pictures->Insert( "C:\\s\\x.png" )->Select; $excel->Selection->ShapeRange->IncrementLeft( 40 ); $excel->Selection->ShapeRange->IncrementTop( 40 ); __END__ Sub Macro1() ' Macro recorded with Macro Recorder ' Tools -> Macro -> Record new macro ActiveSheet.Pictures.Insert( _ "C:\s\x.png").Select Selection.ShapeRange.IncrementLeft 40 Selection.ShapeRange.IncrementTop 40 End Sub