as far as I know this is possible only with Swept Boss/base and not with Surface.
or you can try to change dimension value, which works for surface and solid feature as wel.
Dim swFeat As SldWorks.Feature
Dim swDim As SldWorks.Dimension
Dim dimValue As Variant
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swFeat = Part.FeatureByName("Sweep1")
Dim name As String
Dim FeatType As String
name = swFeat.GetNameForSelection(FeatType)
Set swDim = Part.Parameter("D1@" & name)
longstatus = swDim.SetSystemValue3(Deg2Rad(78), swSetValue_InThisConfiguration, Empty)
Function Deg2Rad(Deg) As Double
Deg2Rad = Deg / 57.2957795130823
thank you very much ,it's really big problem for me ,while you give an exact answer .thank you again .this programming woks very smoothly now !