After tweeking a recorded Macro this would be one method:
ActiveSheet.Range("A1:C20"

.Select
Charts.Add
ActiveChart.SetSourceData Source:=Sheets("Sheet1"

.Range("A1:C20"

, PlotBy _
:=xlColumns
ActiveChart.ChartType = xlSurface
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlRight
ActiveChart.Walls.Select
ActiveChart.Corners.Select
With ActiveChart
.Elevation = 14
.Rotation = 53
End With
This assumes your data is in columns A,B, and C. Also, be aware that Excel doesn't draw true surface graphs. The Scatter plot will draw true 2D plots with irregular data but the surface plot won't. So you may have to precondition your data to plot at regular intervals.