Do not use value table instead use strings. i.e. instead of: Dim vt As Object vt = gp.CreateObject("ValueTable") vt.setrow(0, "D:\inc479405\LandUse_selection.lyr") vt.setrow(1, "D:\inc479405\Soilshp.shp") gp.Intersect_analysis(vt, out_polygons, "ALL", "", "INPUT") 'Does not workUSE: Dim inPath1 As String Dim inPath2 As String Dim inPaths As String Dim quotes As String Dim semicoln As String inPath1 = "D:\inc479405\LandUse_selection.lyr" inPath2 = "D:\inc479405\soilsshp.shp" quotes = " ''" semicoln = "; " inPaths = inPath1 + quotes + semicoln + inPath2 + quotes gp.Intersect_analysis(inPaths, out_polygons, "ALL", "", "INPUT")