Not sure if there is a tool that directly addresses this. I know this question has been asked in one form or another on GeoNet and StackExchange, so I encourage a bit more searching.

If you up for some basic scripting, the following code snippet should work or get you most of the way there:

```
import math
fc =
dist_fld =
with arcpy.da.UpdateCursor(fc, ["SHAPE@", dist_fld]) as cur:
for line, dist in cur:
SR = line.spatialReference
parts = arcpy.Array()
for part in line.getPart():
pn1, pn = part[-2:]
angle = math.atan2(pn.Y - pn1.Y, pn.X - pn1.X)
p = arcpy.Point(pn.X + dist * math.cos(angle),
pn.Y + dist * math.sin(angle))
part.append(p)
parts.append(part)
line = arcpy.Polyline(parts, SR)
cur.updateRow([line,dist])
```

The above code simply linearly extrapolates the line that connects the last two vertices of the line. If you want different line fitting/extending, you can implement a different formula.

NOTE: The ArcPy Array slicing on line 11 requires ArcGIS 10.4.1. If you are using an earlier version the line can be modified.

`pn1, pn = arr[len(arr)-2], arr[len(arr)-1]`