I have two Polygons, A and B, in two shapefiles.
Is there any automatic way to reshape the edge of Polygon A according to the edge of Polygon B?
Yes - use these two editing tools together:
The Reshape Feature tool lets you reshape a polygon by constructing a sketch over a selected feature. The feature takes the shape of the sketch from the first place the sketch intersects the feature to the last.
Tracing is a quick and accurate way of creating new segments that follow the shapes of other features. You can trace directly on top of a feature or apply an offset value. To trace, use either the Line or Polygon tool in conjunction with the Trace construction method on the palette on the Editor toolbar (or the Feature Construction mini toolbar).
One trick I use for this situation is to reshape A to overlap B in a quick, rough manner, snapping to the edge/vertices of B I want to start/end on and using a few quick vertices in between. Then I select B and on the Editor dropdown choose Clip, and you can cut A using B. Note that this will cut everything overlapping B that is visible/editable, so it won't work in all situations. Also note that it doesn't introduce vertices on B if you snap to the edge, so a coincidence topology check will fail.