How about
Sub showHideDetail()
   With Sheets("Tasklist").Shapes(Application.Caller).TopLeftCell
      Rows(.Row).Offset(1).Hidden = Not Rows(.Row).Offset(1).Hidden
   End With
End Sub
And yes, this can be assigned to all your icons.