How can I create macros to shift cells in each direction?

How can I create macros to shift cells in each direction?

I am using the code below:

  1. Public Sub ShiftCellsToDown()
  2. Selection.Insert shift:=xlDown
  3. End Sub
  4. Public Sub ShiftCellsToUp()
  5. Selection.Insert shift:=xlUp
  6. End Sub
  7. Public Sub ShiftCellsToRight()
  8. Selection.Insert shift:=xlShiftToRight
  9. End Sub
  10. Public Sub ShiftCellsToLeft()
  11. Selection.Insert shift:=xlShiftToLeft
  12. End Sub
However, when I run these macros, only the shift to right works.