Just to check you are doing this in edit mode. The code would be quite different in show mode.
Personally I wouldn't copy paste but duplicate. I have included code for both though
Sub copy_paste()
Dim osld As Slide
Dim oshp As Shape
Dim oshpR As ShapeRange
' in case no shape is selected
On Error Resume Next
Set oshp = ActiveWindow.Selection.ShapeRange(1)
If Err Then Exit Sub
oshp.Copy
Set osld = ActiveWindow.Selection.SlideRange(1)
Set oshpR = osld.Shapes.Paste
With oshpR
.Left = oshp.Left
.Top = oshp.Top
End With
End Sub
Sub cloneMe()
Dim osld As Slide
Dim oshp As Shape
On Error Resume Next
Set oshp = ActiveWindow.Selection.ShapeRange(1)
If Err Then Exit Sub
With oshp.Duplicate
.Left = oshp.Left
.Top = oshp.Top
End With
End Sub
How to use code