Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$3" Then Exit Sub
On Error Resume Next
ActiveSheet.Shapes("pic").Select
Selection.ShapeRange.Fill.UserPicture _
ThisWorkbook.Path & "\photo\" & Range("D3").Value & ".jpg"
ActiveCell.Select
End Sub